启动方式选择

  BOOT模式有两种
  1.改写eFUSE(熔丝);
  2. 修改相应的GPIO高低电平。
  第一种修改eFUSE的方式只能修改一次,后面就不能再修改了,所以作为学习与调试我们不能使用。第二种是修改GPIO对应的高低电平来选择启动方式,所有的开发板都使用这种方式。

BOTE_MODE[1:0]

BOOT类型

00

从FUSE启动

01

串行下载

10

内部BOOT模式

11

保留

  开发板只用到第二和第三种BOOT方式。

串行下载

  串行下载是指可以通过USB或UART将代码下载到外置存储设备中,所以我们可以使用OTG1这个USB口向开发板的存储设备下载代码。使用时需要用到NXP提供的一个软件,一般用来最终量产的时候烧写到外置存储设备中。

内部BOOT模式

  在此模式下,芯片会执行内部boot ROM代码,这段boot ROM代码会进行硬件初始化,然后从boot设备(存储代码的设备如SD/EMMC/NAND)将代码拷贝至指定的RAM,一般是DDR。

BOOT ROM初始化内容

BOOT 启动设备

Alienware 0FT9KT BIOS更新_初始化


BOOT_CFG引脚含义

Alienware 0FT9KT BIOS更新_引脚_02


BOOT选择拨码开关

除了BOOT_MODE1和BOOT_MODE0必须引出来,LCD_DATA3LCDDATA7、LCD_DTAT11这六个IO也被引出来,可以通过拨码开关进行设置,其中LCD_DTAT11是BOOT_CFG2[3],LCD_DAT3LCD_DATA7就是BOOT_CFG[3]~BOOT_CFG1[7],这六个IO配置如下:

BOOT_CFG引脚[1:0]

对应LCD引脚

含义

BOOT_CFG2[3]

LCD_DATA11

LCD_DATA11|为0时从SDHC上的SD/EMMC启动,为1时从SDHC2上的SD/EMMC启动

BOOT_CFG1[3]

LCD_DATA3

当从SD/EMMC启动的时候设置启动速度,当从NAND启动的话设置NAND数量

BOOT_CFG1[4]

LCD_DATA4

BOOT_CFG1[7:4]

0000 NOR/OneNAND(EIM)启动。

0001 QSPI 启动。

0011 SPI启动。

010x SD/eSD/SDXC启动。

011x MMC/eMMC启动。

1xxx NAND Flash启动。

BOOT_CFG1[5]

LCD_DATA5

BOOT_CFG1[6]

LCD_DATA6

BOOT_CFG1[7]

LCD_DATA7

镜像烧写

  I.MX6U最终可烧写文件组成如下:
  1.Image vector table 简称 IVT,IVT里面包含了一系列的地址信息,这些地址信息在 ROM中按照固定的地址存放着。
  2.Boot data,启动数据,包含了镜像要拷贝到哪个地址,拷贝的大小是多少等等。
  3.Device configuration data,简称 DCD,设备配置信息,重点是 DDR3的初始化配置。
  4.用户代码可执行文件,比如 led.bin。