S3c2416启动方式
从手册可以了解到s3c2416支持多种起动方式,可以通过外部引脚OM[4:0]来选择从那个存储设备上来启动系统,引脚配置见(图1)。Helper2416开发板上OM[4:0]的链接方式如(图2,图3,图4,).
图1
图2
图3
图4
从图2,3,4中可以得出
通过阅读手册在设置启动方式时还涉及到三个引脚如(图5)
图5
图6
从helper2416的原理图中可以找到相关的三个引脚,如(图6),通过上面的分析可知由于GPC5,GPC6,GPC7全为0 ,板子支持IROM SD/MMC 和 NAND 启动。
启动模式所对应的存储器映射如(图7)
图7
IROM启动
通过设置OM[4:0]= [0,1,0,0,x],上电复位就可以从IROM启动。IROM内部是芯片固化的一段代码。在地址0x0处,上电后从0x0处开始执行,执行一些必要的初始化,然后再根据相关引脚的配置(GPC7 GPC6 GPC5),来确定启动设备是SD/MMC还是NAND,对于IROMSD/MMC启动,固化代码会从SD/MMC卡的一个特殊位置读出8K的代码到IRAM 0x40000000处,然后跳转到0x40000000 处执行。对于IROM NAND Flash启动,固化代码从(GPC7 GPC6 GPC5)的引脚配置状态得出NAND Flash的信息,如页大小,地址周期,然后再从NANA Flash的0x0地址偏移8K的代码到内部IRAM地址0x40000000处,然后跳转到0x40000000处执行。这8K的用户引导代码还要引导用户的其他代码(如u-boot)到RAM中运行(如图8所示的执行顺序)。
图8
NAND 启动
上电复位位从nandflash启动,NandFlash启动模式下,Nand 控制器会自动从Nand Flash 0x0开始处复制8K的代码到内部的RAM地址的0x0处,然后跳到内部RAM的0x0处执行。
由于本人也是学习这方面的知识不久,写的如有不正确或是有异议的地方,欢迎大家批评指正。
论坛ID:cf0609
提交时间:2014.07.31
本帖最后由 cf0609 于 2014-7-31 02:11 编辑