linux 启动方式终极总结

1、I.MX6U 支持多种启动方式以及启动设备,比如可以从 SD/EMMCNAND FlashQSPI Flash

等启动 。用户可以根据实际情况,选择合适的启动设备。不同的启动方式其 启动方式 启动要
也不一样,比如上一章中的从 SD 卡启动就需要在 bin 文件前面添加一个数据头 ,其它的启
动设备也是需要这个数据头的。
boot_mode 1:0 的设置 来选这 BOOT 方式 
1、eFUSE
2、GPIO高低电平 
I.MX6U 有四个boot 模式 boot_mode [1:0] 来控制 
BOOT_MODE1 和 BOOT_MODE0 这两个IO  BOOT模式配置 
00 从FUSE 启动 
01 串行下载 
10 内部boot启动
11 保留  
boot_mode1 为 1 
boot_mode0 为 0 时候 此模式使能 
此模式下 芯片会执行内部的 boot ROM代码 
boot ROM 代码 会进行 硬件初始化 一部分外设 然后从 boot 
设备中 将代码拷贝出来复制到 指定的RAM中 一般是DDR .
imxdownload 会在 led.bin 前面添加一些头信息,重新生成一个叫做 load.imx 的文件,最终实际烧写的是 laod.imx
I.MX6U 的最终可烧写文件组成如下:
①、 Image vector table ,简称 IVT IVT 里面包含了一系列的地址信息,这些地址信息在
ROM 中按照固定的地址存放着
②、 Boot data ,启动数据,包含了镜像要 拷贝到哪个地址 拷贝的大小是多少 等等。
③、 Device configuration data ,简称 DCD ,设备配置信息,重点是 DDR3 的初始化配置 .
④、用户代码可执行文件,比如 led.bin
I.MX6U 中的程序其组成为: IVT+Boot data+DCD+.bin
内部 Boot ROM 会将 load.imx 拷贝到 DDR 中,用户代码是要一定要从 0X87800000 这个地方开始的,因为链接地址为 0X87800000,load.imx 在用户代码前面又有 3KByte 的 IVT+Boot Data+DCD 数 据,下面会讲为什么是 3KByte,因此 load.imx 在 DDR 中的起始地址就是 0X87800000- 3072=0X877FF400
oad.imx 最前面的就是 IVT 和 Boot Data
IVT 和 Boot Data包含了镜像程序的入口点、指向 DCD 的指 针和一些用作其它用途的指针。
内部 Boot ROM 要求 IVT 应该放到指定的位置,不同的启动设 备位置不同,而 IVT 在整个 load.imx 的最前面,其实就相当于要求 load.imx 在烧写的时候应该 烧写到存储设备的指定位置去
我们编译出来的 .bin 文件 不能直接烧写到 SD 卡 中,需 要在 .bin 文件 前面加上 IVT、Boot Data DCD 这三个数据块。这三个数据块是有指定格式的, 我们必须按照格式填写,然后将其放到.bin
文件前面,最终合成的才是可以直接烧写到 SD 卡 中的文件。
复位以后,I.MX6U 片内的所有寄存器都会复位为默认值,但是这些默认值往往不是我们
想要的值,而且有些外设我们必须在使用之前初始化它
开启某些外设的时钟、初始化 DDR 等等 I.MX6U 片内的所有寄存器都会复位为默认值,但是这些默认值往往不是我们想要的值,而且有些外设我们必须在使用之前初始化它。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幽风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值