5. I.MX6U 的启动方式
启动方式通过开发版的8个波动开关组合实现。
5.1. 启动方式的选择
首先要选择开发版的启动方式,有下面四种
BOOT_MODE[1:0] | BOOT 类型 |
---|---|
00 | 从 FUSE 启动 |
01 | 串行下载 |
10 | 内部 BOOT 模式 |
11 | 保留 |
BOOT_MODE1是第一位,BOOT_MODE0是第二位。最常使用的是串行下载和内部BOOT模式。
5.1.1. 串行下载
需选择BOOT_MODE1=0,BOOT_MODE0=1。
此时,MCU会从串口下载程序到开发板上的 SD/EMMC、NAND 等存储设备中。
5.1.2. 内部BOOT模式
需选择BOOT_MODE1=1,BOOT_MODE0=0。
在这个模式下,芯片首先会执行已经存放在内部的BOOTROM代码,这段 boot ROM 代码会进行硬件初始化(一部分外设,包括初始化时钟等内容),然后从 boot 设备(就是存放代码的设备、比如 SD/EMMC、NAND)中将代码拷贝出来复制到指定的RAM中,一般是DDR。
启动设备(BOOT设备)的选择
支持NOR FLASH、NAND FLASH、SD/EMMC、QSPI FLASH、 EEPROM等。最常用的就是NANA、SD卡和EMMC。
如何让通过波动开关选择启动设备
启动设备是通过BOOT_CFG1[7:0]、BOOT_CFG2[7:0]和 BOOT_CFG4[7:0]这 24 个配置 IO,这 24 个配置 IO 刚 好对应着 LCD 的 24 根数据线 LCD_DATA0~LCDDATA23,当启动完成以后这 24 个 IO 就可以 作为 LCD 的数据线使用。这 24 根线和 BOOT_MODE1、BOOT_MODE0 共同组成了 I.MX6U 的启动选择引脚
其中BOOT_CFG4[7:0]全部接地,BOOT_CFG2[7:0]除了BOOT_CFG2[3]用于选择SD卡启动接口,其他全部接地。BOOT_CFG1[7:0]只需考虑BOOT_CFG1[7:3]。这些有用的引脚对应的功能如下
BOOT_CFC 引脚 | 对应 LCD 引脚 | 含义 |
---|---|---|
BOOT_CFG2[3] | LCD_DATA11 | 为 0 时从 SDHC1 上的 SD/EMMC 启动,为 1 时从 SDHC2 上的 SD/EMMC 启动。 |
BOOT_CFG1[3] | LCD_DATA3 | 当从 SD/EMMC 启动的时候设置启动速度,当从 NAND 启动的话设置 NAND 数量。 |
BOOT_CFG1[4] | LCD_DATA4 | BOOT_CFG1[7:4]: |
BOOT_CFG1[5] | LCD_DATA5 | 0000 NOR/OneNAND(EIM)启动。 |
BOOT_CFG1[6] | LCD_DATA6 | 0001 QSPI 启动。 |
BOOT_CFG1[7] | LCD_DATA7 | 0011 SPI 启动。 |
010x SD/eSD/SDXC 启动。 | ||
011x MMC/eMMC 启动。 | ||
1xxx NAND Flash 启动。 |