I.MX6ULL支持多种启动方式,可以从EMMC、SD卡、NAND FLASH、USB、QSPI等设备启动。通过查看《IMX6ULL参考手册.pdf》手册的第8章System Boot,我们可以了解到i.MX6ULL在上电以后,芯片ROM里面固化的程序会根据BOOT_MODE[1:0]寄存器的值来选择启动方式。
BOOT_MODE[1:0]寄存器的值有两种方式可以修改:一种是采用eFuses(熔丝)的方式;另一种是通过设置BOOT_MODE[1:0]对应的GPIO的状态。我们在平常使用的时候基本都是采用设置BOOT_MODE[1:0]对应的GPIO状态来选择启动方式的。
BOOT_MODE[1:0]对应的GPIO引脚是BOOT_MODE1和BOOT_MODE0,如图 1所示:
BOOT_MODE1和BOOT_MODE0这两个引脚在芯片内部默认有100K的下拉,所以这两个引脚在悬空状态下默认是低电平(0)。我们把这两个引脚引到了底板上,并连接到了拨码开关上,拨码开关对应的另一端通过10K电阻接到了3.3V电源上,这样我们可以通过拨码开关来设置这两个IO的状态了(高电平或低电平)。如图 2所示: