刚开始的时候看了英文的关于S3C2440启动方式的Datasheet,一头雾水啊
,然后再通过网上不断的搜索和学习慢慢的领悟了2440两种启动方式的真正的本质。针对mini2440的开发板总结了下个人的经验。
所有程序的启动指针都是从0x000000开始的,2440的启动方式也肯定是这样的,那么两种启动方式区别在哪里了:关键是启动时候的系统存储空间的映射不同。
启动方式一 直接启动,就是系统从一上电开始,程序的指令从0x000000000开始,存储空间的映射bank0的初始地址为0x0000000。在开发板上bank0所连接的Nor Flash,所以程序启动时候就从NorFlash的0地址开始。
启动方式二 NandFlash启动,就是系统从一上电开始,程序的指令也从0x000000000开始,但此时的Bank0已经不存在了(姑且这么认为),系统空间的首地址为S3C2440的片上SRAM,大小为4K,其内容是为做BootFalsh的NANDFLASH中的前4K内容(上电瞬间系统自动复制)。然后片上SRAM的首地址为系统的首地址启动程序。而启动用的NANDFALSH的地址不在系统地址中了。
对资深的人来说是很简单,但是对刚接触不久的人来说,可能会被这个问题困扰很久啊。
本文解析了S3C2440处理器的两种启动方式——直接启动和NandFlash启动的本质区别。重点介绍了不同启动方式下存储空间的映射变化及其对程序加载的影响。
2921

被折叠的 条评论
为什么被折叠?



