分类: LINUX
2014-10-31 00:10:44
原文地址:关于6410的sd卡和nandflash启动的区别 作者:笨鸟2013
1,sd卡启动6410
首先,sd卡启动0地址在Rom里面,上电后,程序从0地址开始执行,将sd卡的前8Kbootloader拷贝到Sram里面执行,这8Kbootloader会对进行一些设备的初始化,关闭看门狗,初始化nandflash,初始化时钟,初始化必要的硬件设备等等,执行完毕后,由Rom执行程序将整个的bootloader拷贝到内存(这里包括之前的8K),然后在内存执行bootloader,注意,此时将不再执行前8K,而是跳到某个函数地址开始执行。
2,nandflash启动
首先,nand启动呢,0地址不再是在Rom里,而是在一个叫stepstone控制器里。由它掌管执行指令的跳转和程序拷贝。之后的运行和sd卡基本是一样的。也是将bootloader的前8k拷贝到Sram里,之后同sd卡启动,只是执行地址跳转以及程序拷贝不由Rom控制而是由stepstone控制器控制了。
综上,这两种启动方式的不同有两个:
1,映射0地址不一样,sd卡0地址在ROM里,而nandflash启动的0地址在Sram里。
2,sd卡启动是用ROM进行地址的跳转和程序的拷贝,而nandflash启动是用stepstone控制器来进行的。