初始化对和 INT 文件属性 - 2023.2 简体中文

Bootgen 用户指南 (UG1283)

Document ID
UG1283
Release Date
2023-10-18
Version
2023.2 简体中文

初始化对支持您为 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 位顶点整数。您可在任意表达式运算符周围添加空格以提高可读性。