嵌入式裸机开发-I.MX6U 启动方式

I.MX6U可以从 SD/EMMC、NAND Flash、QSPI Flash等启动,且需要在bin文件前面添加数据头。

启动方式选择

在拨码开关中,使用 BOOT_MODE[1:0]这两个引脚控制BOOT模式, BOOT_MODE1 和 BOOT_MODE0 在芯片内部是有 100KΩ下拉电阻的,所以默认是0。
在这里插入图片描述
BOOT 类型模式选择如下图。
在这里插入图片描述

串行下载

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

内部 BOOT 模式

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

这里的内部 boot ROM 代码就是管理imxdownload烧录软件写在bin文件以及前面的数据头进行相应操作。

启动设备选择

当 BOOT_MODE 设置为内部 BOOT 模式以后,可以从不同设备中启动(如 SD/EMMC、NAND Flash、QSPI Flash等)。使用BOOT_CFG1[7:0]、 BOOT_CFG2[7:0]和 BOOT_CFG4[7:0]这 24 个配置 IO进行启动设备的选择。
在这里插入图片描述
虽然有 24 个 IO,但是实际需要调整的只有那几个 IO,其它的 IO 全部下拉接地即可,也就是设置为 0。

如下图,也就这么亿点点设置。
在这里插入图片描述
经过简化,原子哥的开发板只设置了基本的设置需求,引出了BOOT_CFG2[3]和BOOT_CFG1[3]~BOOT_CFG1[7]这 6 个IO 的配置,如下图。

MODE[1:0]CFG2[3]CFG1[3:7]设备

在这里插入图片描述

镜像烧写

STM32 可以直接将编译生成的.bin 文件烧写到 STM32 内部 flash 里面,但是 I.MX6U 不能直接烧写编译生成的.bin 文件,我们需要在.bin 文件前面添加一些头信息构成满足 I.MX6U 需求的最终可烧写文件。imxdownload 是如何将 led.bin 打包成 load.imx 的呢?

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

所生成的 load.imx组成为: IVT+Boot data+DCD+.bin。
其中 IVT+Boot data+DCD=3KByte。
DDR中用户代码(.bin)是要一定要从0X87800000 这个地方开始,因为链接地址为 0X87800000,load.imx 在 DDR 中的起始地址就是 0X87800000-3072=0X877FF400


这里学习一下32位内存结构,依然是一字节(8位)为一个地址。
在这里插入图片描述
以上基地址位0X87000000,地址和数据的关系如下

地址数据数据数据数据
0X870000000X400X200X000XD1
0X870000040X870X800X000X00

IVT、 Boot Data 和 DCD 这三个数据块是有指定格式的,我们必须按照格式填写,然后将其放到.bin 文件前面,最终合成的才是可以直接烧写到 SD 卡中的文件。

对于SD卡启动:
IVT从0X877FF400开始,结构如图,每行表示4字节(32位)。
在这里插入图片描述
在这里插入图片描述

Boot Data从0X877FF420开始,结构如图,每行表示4字节(32位)。
在这里插入图片描述
DCD从0X877FF42C开始,结构如图,每行表示4字节(32位),后边儿还有。。。在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值