一. 硬件启动方式选择
汇编程序启动 LED 灯实验,是从SD卡读取 bin 文件并启动,说明 IMX6ULL 支持从 SD 卡启动。 IMX6ULL 支持多种启动方式。
注意:硬件原理图中,标注 DNP ( do not pupulate) 的意思是不焊接,即没有连接。
IMX6ULL是怎么支持从多种外置flash启动程序的?
1. 启动方式的选择
IMX6ULL启动方式的选择如下图配置:
BOOT_MODE0 和 BOOT_MODE1,这两个是两个 IO 来控制的。选择从 USB 启动(或者 UART)还是内部 BOOT 启动。
如果要烧写系统到开发板中可以选择从USB下载,下载到SD卡,EMMC、NAND 等外置存储中。烧写完成设置从内部 BOOT启动,然后从相应的外置存储中启动。
2. 选择启动设备
选择启动设备的前提是:设置 MODE1 和 MODE0 是从内部 BOOT 启动的,即MODE1=1,MODE0=0。
IMUX6ULL支持的设备:
NOR flash,oneNAND、NAND Flash、QSPI flash、SD/EMMC、EEPROM。我们最常用的就是NAND、SD、EMMC 甚至 QSPI Flash。
如下底板的原理图中,拨码开关中 OFF 与 ON 标注错误。左边应该是 ON,右边是 OFF。可以通过电路图可知。
3. 总结
1. 串行下载
当
BOOT_MODE1
为
0
,
BOOT_MODE0
为
1
的时候此模式使能。
串行下载的意思就是可
以通过
USB
或者
UART
将代码下载到板子上的外置存储设备中,我们可以使用
OTG1
这个
USB
口向开发板上的
SD/EMMC
、
NAND
等存储设备下载代码。我们需要将
BOOT_MODE1
拨到
“
OFF
”,将
BOOT_MODE0
拨到“
ON
”。
2. 内部 BOOT 模式
当
BOOT_MODE1
为
1
,
BOOT_MODE0
为
0
的时候此模式使能。
在此模式下,芯片会执
行内部的
boot ROM
代码,这段
boot ROM
代码会进行硬件初始化
(
一部分外设
)
,然后从
boot
设
备
(
就是存放代码的设备、比如
SD/EMMC
、
NAND)
中将代码拷贝出来复制到指定的
RAM
中,
一般是
DDR
。