由于当前使用的是裸板,没有OS,DDR的初始化、文件保存地址都尚未确定,所以我们生成二进制文件以后,是无法直接放到开发板上运行的。

因此,我们一般会在二进制文件之前加一些头部信息,这些头部信息会告诉开发板如何初始化DDR、文件要拷贝到哪个位置、文件大小是多少等。 头部信息 + 二进制文件 = 镜像文件

下面重点了解的是头部信息由哪些内容构成


目录


一、IVT

IVT 相当于当前镜像文件的管理者,指定了 IVT、Boot Data、DCD、bin文件在DDR中的起始位置

1、IVT 的起始位置

采用不同设备启动,IVT 在存储设备中偏移量也会有所不同,以SD卡为例,IVT表的偏移量是 1K 字节,说明 IVT 要保存到第 1Kbyte 的位置

2、IVT 的内容

那么 IVT 中主要包含了如下内容:

字段 含义 示例数据
header 头部信息(如 IVT 所占空间大小、版本) 0x402000D1
entry

镜像第一行指令在内存中的绝对地址

(不是存储设备的绝对地址)

0x87800000
reserved1 保留字段 -
dcd DCD地址(指的是内存中的地址) 0x877FF42C