由于当前使用的是裸板,没有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 |

文章讲述了在无操作系统裸板环境下,如何通过添加头部信息来创建可执行的镜像文件。IVT作为镜像管理者,包含入口地址、DCD和BootData等信息。BootData保存镜像文件位置和大小,而DCD用于配置设备寄存器初始化。用户代码与这些头部信息结合形成完整的镜像文件。
最低0.47元/天 解锁文章
3801

被折叠的 条评论
为什么被折叠?



