1

我正在为 TMS320DM6437 开发引导加载程序。这个想法是创建 2 个独立的固件,一个将更新另一个。在固件 1 中,我将下载固件 2 文件并将其写入指定地址的 NOR 闪存。两个固件都以 ais 格式存储在 NOR 闪存中。现在我在 Flash 中有两个应用程序。一个是我的自定义引导加载程序,第二个是我的主要项目。我想知道如何从第一个程序跳转到位于指定地址的第二个程序。我还期望有关可能帮助我创建自定义引导加载程序的文档的信息

有什么建议吗?

4

1 回答 1

2

你可以跳转到入口点。我在 TMS320 2802x 和 2803x 上使用这种方法,但应该是一样的。入口点的符号是 c_int00。要了解第二个应用程序中 c_int00 的地址,您必须通过修改链接器命令文件将运行时支持 (RTS) 库修复到特定地址。

否则,您可以让 RTS 不受约束,并创建一个使用 cint_00 值初始化的 C 变量(在固定地址)。使用这种方法,您的内存映射更加灵活,您可以与 C 变量一起添加综合数据结构以及引导加载程序的其他信息,例如 CRC、版本号等。

在第二个应用程序中小心(重新)初始化外设,因为您不是从硬件复位开始的,您可能需要明确地复位更多寄存器,或清除中断请求。

于 2014-04-05T07:05:20.523 回答