由《IMX6ULL参考手册》第8.7章可知:
1. Image vector table,简称IVT,里面包含一系列的地址信息,这些地址信息在ROM中按照固定的地址存放着
2. Boot data,启动数据,包含了镜像要拷贝到哪个地址,拷贝的大小是多少等等。
3. Device configuration data,简称DCD,设备配置信息,重点是DDR3的初始化配置
4. 用户代码可执行文件,比如led.bin
由此可以看出,最终烧写到IMX6ULL的程序其组成为:IVT+Boot data+DCD+.bin
imxdownload所生成的load.imx就是在led.bin前面加上IVT+Boot data+DCD。
至于为什么要加这样一段格式,我认为和芯片内部ROM里面的已经写好的一段程序有关,这段程序会按照这样的格式来读取SD卡上面的程序,然后执行SD卡里面的.bin文件,相当于把控制权交到了SD卡中。
1. Image vector table structure
header:
tag:0xD1
Length:0x0020 ivt长度有32个字节
version:0x40
现在我们根据header结构定义的含义,只知道整个ivt长度有32个字节
entry:.bin入口地址,0x87800000
reserved1: 保留0x00000000
dcd入口地址:0x877FF42C
boot data入口地址:0x877FF420
self地址:0x877FF400
每个地址为何如此设值,后面再解释
2. Boot Data
3. DCD数据
这部分只做了解!!!