嵌入式Linux学习之I.MX6U启动方式详解

I.MX6U 支持多种启动方式以及启动设备,比如可以从 SD/EMMC、 NAND Flash、 QSPI Flash等启动。

一、启动方式选择

BOOT 的处理过程是发生在 I.MX6U 芯片上电以后,芯片会根据 BOOT_MODE[1:0]的设置来选择 BOOT 方式。 通过修改 BOOT_MODE[1:0]对应的 GPIO 高低电平来选择启动方式。
I.MX6U 有四个 BOOT 模式,这四个 BOOT 模式由 BOOT_MODE[1:0]来控制,也就是BOOT_MODE1 和 BOOT_MODE0 这两 IO, BOOT 模式配置如表 所示:
在这里插入图片描述

1.串行下载

串行下载的意思就是可以通过 USB 或者 UART 将代码下载到板子上的外置存储设备中,可以使用 OTG1 这个 USB口向开发板上的 SD/EMMC、 NAND 等存储设备下载代码。

2.内部BOOT模式

在此模式下,芯片会执行内部的 BOOT ROM 代码,这段 BOOT ROM 代码会进行硬件初始化(一部分外设),然后从 BOOT 设备(就是存放代码的设备、比如 SD/EMMC、 NAND)中将代码拷贝出来复制到指定的 RAM 中,一般是 DDR。

二、启动设备

当 BOOT_MODE 设置为内部 BOOT 模式以后,可以从以下设备中启动:
1.接到 EIM 接口的 CS0 上的 16 位 NOR Flash。
2.接到 EIM 接口的 CS0 上的 OneNAND Flash。
3.接到 GPMI 接口上的 MLC/SLC NAND Flash, NAND Flash 页大小支持 2KByte、 4KByte和 8KByte, 8 位宽。
4. Quad SPI Flash。
5.接到 USDHC 接口上的 SD/MMC/eSD/SDXC/eMMC 等设备。
6.SPI 接口的 EEPROM。

启动设备的选择是通过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],将其全部接地即可。其实我们
需要配置的引脚数量只有6个

在这里插入图片描述
在这里插入图片描述

三、镜像烧写

imxdownload 会在 led.bin前面添加一些头信息,重新生成一个叫做 load.imx 的文件
.imx是最后烧录的文件,由以下3部分组成:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值