历史上的今天

今天是:2024年11月14日(星期四)

2019年11月14日 | S3C2440 启动代码分析

发布者:HeavenlyLove 来源: 51hei关键字:S3C2440  启动代码  Nand  Flash 手机看文章 扫描二维码
随时随地手机看文章

启动代码是系统上电或复位以后运行的第一段代码,它的作用是在用户程序运行之前对系统硬件及软件运行环境进行必要的初始化并在最后使程序跳转到用户程序,它直接面对ARM 处理器内核及硬件控制器进行编程,所执行的操作与具体的目标系统紧密相关。

S3C2440 支持两种方式的启动:Nor Flash 启动和Nand Flash 启动。Nor Flash 和Nand Flash 都是非易失性存储器,Nor Flash 的特点是芯片内执行,程序可以直接在其中运行,而不必将程序读取到RAM 中运行。Nor Flash 虽然具有这个优点,但是它的性价比远低于Nand Flash,因而很多系统采用Nand Flash 启动。Nand Flash 的特点是采用非线性存储模式,程序无法在其中运行,它只能作为程序或数据的存储载体,存储在其中的程序只能先拷贝到RAM 中才能运行。      从Nor Flash 启动时,与nGCS0 相连的Nor Flash 就被映射到nGCS0 片选的空间,其地址被映射为0x00000000;从Nand Flash 启动时,S3C2440 芯片内部自带的一块容量为4K 的被称为“Steppingstone”(“起步阶石”)的BootSRAM 被映射到nGCS0 片选的空间,其地址被映射为0x00000000。当系统上电或复位时,程序会从0 地址处开始执行,因此我们编写的启动代码要确保存储在0 地址处。

当启动方式为Nor Flash 启动时,没有额外需要考虑的问题,因为这种情况下程序在系统启动前就存储在Nor Flash 中,我们只要保证将启动代码保存在Nor Flash 开始的位置即可,系统上电或复位时,0 地址处的启动代码就会被执行。

在启动方式为Nand Flash 启动的情况下,系统启动前所有的程序存储在Nand Flash 中,系统的启动过程稍微有点复杂:系统上电或复位时,0 地址处为S3C2440 内部自带的BootSRAM,启动前里面没有任何存储内容,启动后S3C2440 先通过硬件机制将Nand Flash 前4K 的内容拷贝至其中,然后再运行里面的程序(从0 地址处)。这种情况下我们需要保证将启动代码保存在Nand Flash 开始的位置,并且启动代码的大小要小于4K。如果系统的所有程序在编译链接后的大小小于4K,那在系统的启动代码中无需考虑将程序从Nand Flash 搬运到SDRAM 这个问题,因为所有的程序在启动时即全部由Nand Flash 拷贝至BootSRAM,程序在BootSRAM 中运行即可;如果系统的所有程序在编译连接后的大小大于4K,那在系统的启动代码中需要包含一段将系统的全部程序从Nand Flash 搬运到SDRAM 的代码,因为系统启动时只将Nand Flash 的前4K 拷贝到了BootSRAM 中,还有部分程序保存在Nand Flash 中, Nand Flash 中是无法运行程序的,需要将所有程序拷贝至SDRAM 并在其中运行,所以在系统的启动代码中要包含这段有关程序拷贝的代码,并在所有程序拷贝完成后使程序跳转到SDRAM 中运行。也就是说在启动方式为NandFlash 启动的情况下,因为Nand Flash 的特性,程序需要涉及到两次的搬移,一次是从Nand Flash 搬移到BootSRAM,搬运的程序量大小是4K,目的是使系统能够启动;第二次搬运是从Nand Flash 搬运到系统的SDRAM,如果系统的所有程序量小于4K,这一步可以省略,搬运的程序量大小是系统的所有程序,目的是使程序在SDRAM 中运行。第一次搬运是S3C2440 通过硬件机制自动实现的,我们无需干预,第二次则需要我们程序员来实现。

关键字:S3C2440  启动代码  Nand  Flash 引用地址:S3C2440 启动代码分析

上一篇:关于ARM的22个概念
下一篇:ARM920T看门狗定时器、系统时钟

推荐阅读

全球微电子工程公司 Melexis 今日宣布,针对汽车行业的飞行时间 (ToF) 技术进行重大升级,且巩固了 Melexis 在汽车应用类飞行时间传感器的开发和生产领域的行业领军地位。该产品组合现包括新一代 QVGA ToF 传感器芯片组---MLX75024以及即将上市的 VGA ToF传感器--- MLX75123BA。最新的研发成果有助于 Melexis 打造更为强有力的产品,满足汽...
据IT media网报道,近日,小米证实将进军日本市场的消息, 官方尚未正式宣布进入日本市场时间和推出产品。据报道,小米将日本看作东亚地区最大的智能手机市场,在日本市场也会贯彻以高性价比为用户带来愉悦使用体验的理念。值得一提的是,虽然官方没有公布具体推出产品,但手机产品市场总监臧智渊先生在对媒体说明中详细介绍了小米Note 10这款产品。Not...
2020年上半年,在股价形成了阶段性低点之后,“扫地机器人第一股”科沃斯,市值一路狂奔开启,短短6个月时间,价格翻了近4倍,市值一度也接近400亿元。当我尝试去寻找支撑它暴涨背后的逻辑支点时,旗下的高端智能家电品牌——TINECO添可,突然闪现进了视线里:正面硬刚戴森、高端路线卖爆品、增长势如破竹,一下子就让我对科沃斯的高成长势能,有了恍然大悟的认知。相...

史海拾趣

问答坊 | AI 解惑

LCD Scope 40MSPS

网上找到的一个示波器网站 http://www.eosystems.ro/…

查看全部问答∨

有调通过marvell wifi 8686 sdio接口驱动来讨论下???

正在调sdio接口的wifi 8686驱动,sdio确认好的,读写寄存器,加载固件都没问题。有以下问题: 1. 我是直接把驱动放在bsp中编的,wince启动后自动加载wifi驱动, 并且这个wifi驱动会自行搜索热点。我的理解是wifi驱动加载固件启动完wifi芯片注册网络 ...…

查看全部问答∨

protel 99se中,sp232E在哪个库中?

如题。 protel 99se中,SP232E所在的库叫什么?…

查看全部问答∨

求救,自己定制系统不能显示中文??

奇怪,在pb5.0自己定制的系统不能显示中文,只能显示"_",但用mobile Hansheld作系统的话就能显示中文,什么回事呢? …

查看全部问答∨

看看我的成果

本人长期从事单片机开发应用,积累了一定的经验。本人将毕生研究心得集成了文字,放在我的博客里,希望大家光临指导,并给点意见。我的博客地址;http://blog.mcuol.com/user/Article/500.html…

查看全部问答∨

STM32的FLASH使能和禁止半周期访问对运行有什么区别吗

                                 如题…

查看全部问答∨

f2812AD转换波动很大,不知是什么原因?

用电位器输出一个电压值,从我watch窗口看到的ADCresult值都在变化,变化比较大。如0xabc0,b为都会能差4,帮忙分析一下可能那里设置不对。谢谢!…

查看全部问答∨

LM3S811使用心得之ADC

从参加抢LM3S811的活动后,每天都期待啊,终于在4.26的下午,顺风快递发来信息去取快递,其实已经料到是811到啦,好兴奋的跑到校门口外迎接顺风,领到包裹后,回寝室迫不及待的打开它,没错是811 。用811把我以前的LCD有重新驱动了起来,下面是我这 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved