1. helper2416开发板的核心板介绍 (将显示屏去掉)
K9F2G08U0B芯片 256M NAND FLASH
H5PS5182GF芯片跟原理图不一样,原理图芯片是K4T51163QC芯片,但接口差不多 64M DDR FLASH
LAN9220 10/100M网口芯片
2. helper2416开发板启动模式
S3C2416支持多种启动模式,通过外部引脚OM[4:0]来决定从哪个存储设备上启动,引脚配置对应的启动模式见下图。目前市面上的各类S3C2416开发板都是参照三星smdk2416开发板进行开发的。由于有了IROM启动以及NAND启动,Nor flash已基本没有用处,因为代码一般是不会在Norflash执行,都是要搬到RAM里执行,不然性能无法忍受。因此,市面上的开发板基本都是不再配置Nor flash,只配置了NAND flash。笔者此处只讲解市面上S3C2416开发板支持的两种启动模式,IROM启动和NAND启动。
| |
|
图3-1 S3C2416启动模式配置
分析启动方式:
helper2416核心板原理图中
当我们将板子插孔插入下图所示
OM0为低电平,OM1,OM2的电平由OM3控制,而OM3连在BOOT_SD/NAND管脚,OM3的电平由SW7电平控制
此时就是上面原理图J20中的1,2管脚,就是SD卡启动
|
OM0 OM1 OM2 OM3
0 0 0 1
由表可以得出iROM启动
插入2,3管脚就是nand flash启动
OM0 OM1 OM2 OM3
0 1 1 0
由表可以得出NAND启动
|
如果按下按键就从SD卡启动了,从原理图分析高电平从nand flash启动,低电平从SD卡启动
|
图3-2 启动模式对应的存储器映射
3. IROM启动
通过设置[OM4, OM3, OM2, OM1, OM0] = [0,1,0,0,x],上电复位即可从IROM启动,对于IROM SD/MMC启动,固化代码会直接从SD/MMC卡的一个特殊位置读出8k的代码到0x40000000处的Steppingstone。复制完代码到Steppingstone后,固化代码跳转到0x40000000处开始执行用户的代码
注意:
BL1:代码8K以下,也就是说我们bootloader的大小应为8K一下
BL2:没有大小限制,helper 2416使用的256M的大小的,所以最大存储为256M,存放内核代码和文件系统
启动流程:
1> IROM: bootloader代码(启动代码)加载到8KB的stepping stone,程序从stepping stone执行,stepping stone映射地址0x40000000
2> 执行bootloader代码,bootloader代码工作时主要是初始化系统时钟,UART,关看门狗,初始化堆栈,开启MMU.将BL2(8K到246M大小)代码加载到SDRAM中,helper 2416使用的64M DDR SDRAM
3> 最后跳到DDR SDRAM执行代码
详细流程将在移植u-boot中章节中进行详细讲解
流程图: