本节提供有关如何在 Arm 启动器件上启动 DSP 可执行文件的信息。用户引导加载程序 (UBL) 将首先运行,并用来唤醒 DSP,从而开始执行 DSP 应用。Arm 和 DSP 程序组合成一个可被直接刷新和启动的 AIS 映像。
使用一个简单的测试程序,其中 DSP 在启动后使 OMAP-L138 EVM 上的 LED 反复闪烁。
这是一个非常简单的过程,需要记住一些关键事项:
- Arm 必须设置 HOST1CFG 寄存器以更改 DSP 复位向量。这应该指向 DSP 可执行文件的入口点,但它只能被设置为 1KB 边界(保留底部 10 位,读作 0)。因此,DSP 应用的链接器命令文件应专门迫使入口点也对齐到1KB 边界上。在本示例中,地址 0x80010000 处创建了一个名为“entry_point”的内存区域,并将“.text:_c_int00”段分配给该内存区域。
- 和 DSP .map 文件不能重叠。如果两个程序使用相同的内存地址,它们将相互覆盖并很可能崩溃。应编写链接器命令文件以防止这种情况发生。
- 对于芯片版本 1.0 和 1.1,在写入 HOST1CFG 寄存器之前必须解锁 KICK 寄存器。此外,对于所有的修订版本,Arm 必须处于管理员模式。SOC 设计要求 Arm 内核处于管理员模式,以配置引脚多路复用 (PINMUX) 寄存器。TI Arm 工具链在初始化期间以用户模式配置内核,因此 Arm 应用需要包含 boot.asm 源文件,以将 Arm 执行状态更改为管理员模式。该文件应包含在需要访问某些 SYSCFG 寄存器并需要管理员模式的所有项目中。
- 如果 DSP 存储器映射的任何段在 DSP L2 RAM (0x11800000) 中,请注意两点:
- 请确保 DSP 链接器命令文件中的所有 L2 RAM 地址都是在 0x118xxxxx 范围内而不是 0x008xxxxx 范围内引用的,因为这些地址无法写入 0x008xxxxx 地址范围
- 使用 AISGen 的“配置 PSC”功能启用 DSP LPSC (PSC0,#15)。如果 DSP巨型模块处于复位状态,则L2 RAM将无法访问,并且段加载将失败。该项目中包含的 AISGen CFG 文件默认启用 PSC0,#15。