起始地址
在分析启动流程之前我们首先要清楚不论是arm的何种处理器,其都是从0x0000 0000地址处开始执行程序的。
以2440为例:
- 启动方式
S3C2440支持两种启动模式:NAND和非NAND(这里是Nor Flash),具体采用的方式取决于OM0、OM1两个引脚的状态。 - 地址布局
从上图我们可以清楚的看到左边的是从Nor Flash启动的地址布局,右边是从NAND启动的地址布局。
Nor Flash内可以运行程序,所以我们在放bootloader的时候放在0地址处即可。
3. 启动流程
我们从地址布局图中可以看到,当我们从NAND启动的时候0地址处BootSRAM(又叫做stepping stone垫脚石),当我们上电时其会做以下事情
-
上电后处理器自动将nandflash前4KB的内容复制到boot sram开始执行(由硬件完成)。
-
通过bootsram(即刚才复制进来的4k)来初始化相关硬件和寄存器从而访问nandflash,接下来把剩余的bootloader复制到内存(SDRAM/DRAM)中,当stepping stone 里面的4KB执行完以后跳转到内存继续执行,完成系统的启动。