初始化对支持您为 MIO 多路复用器和闪存时钟轻松完成处理器系统 (PS) 寄存器的初始化工作。这样即可在将 FSBL 镜像复制到 OCM 之前或者利用就地执行 (XIP) 从闪存执行此镜像前完成 MIO 多路复用器的完整配置,并且支持将闪存器件时钟设置为最大带宽速度。
在启动镜像头文件固定部分末尾包含 256 个初始化对。初始化对采用这种设计方式是因为每个初始化对均包含 1 个 32 位地址值和 1 个 32 位数据值。如果不执行初始化,那么所有地址值均包含 0xFFFFFFFF
,而数据值则包含 0x00000000
。默认情况下设置初始化对时使用的文本文件使用 .int 文件扩展名,但此文本文件可采用任意文件扩展名。
在文件名前追加的 [init]
文件属性用于将其识别为 BIF 文件中的 INIT
文件。数据格式包含操作指令后接:
- 1 个地址值
- 1 个 = 字符
- 1 个数据值
.set.
操作指令;例如:.set. 0xE0000018 = 0x00000411; // This is the 9600 uart setting.
Bootgen 可从 INT
文件填充启动头文件初始化,上限为 256 对。运行 BootROM 时,它会查看地址值。如果该值并非 0xFFFFFFFF
,那么 BootROM 会使用该地址值后的下一个 32 位值来写入地址值。BootROM 会循环初始化对并设置值直至它遇到 0xFFFFFFFF
地址或者达到第 256 个初始化对。
Bootgen 可提供包含以下运算符的完整表达式求值程序(包含嵌套括号用于强制执行计算优先顺序):
* = multiply/
= divide
% = mod
an address value
ulo divide
+ = addition
- = subtraction
~ = negation
>> = shift right
<< = shift left
& = binary and
= binary or
^ = binary nor
数值可采用十六进制 (0x
)、八进制 (0o
) 或十进制数字。数值表达式保留为 128 位顶点整数。您可在任意表达式运算符周围添加空格以提高可读性。