[原创] 参与HELPER2416开发板助学计划-----(2)裸机开发--启动方式分析

cf0609   2014-7-31 02:02 楼主
S3c2416启动方式
从手册可以了解到s3c2416支持多种起动方式,可以通过外部引脚OM[4:0]来选择从那个存储设备上来启动系统,引脚配置见(1)Helper2416开发板上OM[4:0]的链接方式如(2,图3,图4).
t1.png 1
t2.png
2
t3.png
3
t4.png 4
从图234中可以得出
OM4
OM3
OM2
OM1
OM0
Nand(page 4K)
0
0
0
1
0
SD/MMC
0
1
0
0
0
通过阅读手册在设置启动方式时还涉及到三个引脚如(5)
t5.png
5
t6.png
6
helper2416的原理图中可以找到相关的三个引脚,如(图6),通过上面的分析可知由于GPC5,GPC6,GPC7全为0 ,板子支持IROM SD/MMC NAND 启动。
启动模式所对应的存储器映射如(7)
t7.png
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 Flash0x0地址偏移8K的代码到内部IRAM地址0x40000000处,然后跳转到0x40000000处执行。这8K的用户引导代码还要引导用户的其他代码(如u-boot)到RAM中运行(如图8所示的执行顺序)。
t8.png
8
NAND 启动
上电复位位从nandflash启动,NandFlash启动模式下,Nand 控制器会自动从Nand Flash 0x0开始处复制8K的代码到内部的RAM地址的0x0处,然后跳到内部RAM0x0处执行。
由于本人也是学习这方面的知识不久,写的如有不正确或是有异议的地方,欢迎大家批评指正。
论坛ID:cf0609
提交时间:2014.07.31
本帖最后由 cf0609 于 2014-7-31 02:11 编辑

回复评论 (5)

不错,挺好
努力
点赞  2014-7-31 05:20
分析挺仔细,给个赞!
My dreams will go on... http://www.jyxtec.com
点赞  2014-7-31 23:31
引用: spacexplorer 发表于 2014-7-31 23:31
分析挺仔细,给个赞!

谢谢,,,
点赞  2014-8-1 00:38

谢谢,,,如有不正确的地方请指正,,,
点赞  2014-8-1 00:38
引用: spacexplorer 发表于 2014-7-31 23:31
分析挺仔细,给个赞!

谢谢,,,如有不正确的地方请指正,,,
点赞  2014-8-1 00:39
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复