s3c2410的nandflash启动过程分析
扫描二维码
随时随地手机看文章
注:此文为部分摘录,并且在原文基础上有改动link
这几天一直在摸索s3c2410的启动过程,几天的困惑终于在昨天晚上基本解决.下面详细分析一下它的最前面的启动过程.
1.在板子上电的一开始,首先自动判断是否是autoboot模式(这是由硬件设计阶段,由硬件工程师对mcu的引脚连线决定的),我所使用的s3c2410是带有nandflash的,并切被设置成autoboot,从nandflash开始启动.
2.在判断是autoboot模式后,mcu内置的nandflash控制器自动将nandflash的最前面的4k区域(这4k区域存放着 bootloader的最前面4k代码)拷贝到samsung所谓的"steppingstone"里面(实际上是一块4k大小的SRAM).
3.在拷贝完前4k代码后,nandflash控制器自动将"steppingstone"映射到arm地址空间0x00000000开始的前4k区域.(是从0地址开始吗?有疑问。比如公司的板子也是arm芯片,但是nandflash控制器在启动时却没有将"steppingstone"映射到0地址,而是映射到了其他地址段)
4.在映射过程完成后.nandflash控制器将pc指针直接指向arm地址空间的0x00000000位置,准备开始执行"steppingstone"上的代码.
... ...
至此,系统启动的“史前时期”结束,余下的启动工作由bootloader来完成。