1. 常见的启动方式
在单片机的设计中,通常有一块nor flash
,其采用IO统一编址的方式,使用地址总线便能访问其中内容。因此代码烧录其中,当单片机上电时便能在该nor flash
中执行。
使用nor flash
的优点是性能稳定,总线式访问,无需初始化
其缺点是占用地址空间,造价昂贵,容量小,需要使用专用烧写器。
2. S5PV210的启动方式
三星设计的SoC S5PV210
没有采用nor flash
作为芯片的运行介质,其实现了从MoviNand/iNand/MMC/eMMC Card/eSSD
等非总线式访问介质中启动。
这种方式的优点:
- 降低了BOM成本
- 省去了专用烧写器
- 提供了多种启动介质
2.1 启动介质的选择
S5PV210
的特殊引脚OM Pin用来选择具体的启动方式。
2.2 具体启动过程
S5PV210
中有64KB的内部ROM iROM
和96KB的内部SRAM iRAM
。其中iROM
的特性类似于nor flash
,三星官方在其中固化了一段代码(称为BL0),类似于Windows中的BIOS。这段代码实现固定的功能,其主要功能在于根据OM Pin识别启动介质,初始化该介质的控制器,拷贝其开头的16KB代码(称为BL1)至iRAM
中,并跳转至iRAM
运行。
BL0的具体步骤如下图所示:
BL1是我们自己写的代码,其功能在于完全初始化存储设备(如Nand),将BL2读取至iRAM
中,并运行BL2。
BL2的功能是完全初始化SDRAM,并将剩余的代码加载至SDRAM中,并跳转运行。
完整的流程如下图所示:
具体步骤如下图所示:
3. 多通道启动
S5PV210
具有多通道启动功能,当其在OM Pin选择的启动介质中未找到合法的BL1时,其会选择SD/MMC 通道2再次尝试读取BL1。如下图所示: