我正在为TMS320DM6437开发一个引导加载程序。这个想法是创建两个独立的固件,其中一个将更新另一个。在firmware1中,我将下载firmware2文件并将其写入指定地址的NOR闪存。两个固件都以ais格式存储在NOR闪存中。现在我在闪存中有两个应用程序。一个是我的自定义引导加载程序,第二个是我的主项目。我想知道如何从第一个程序跳到位于指定地址的第二个程序。我还希望获得有关文档的信息,这些信息可以帮助我创建自定义引导加载程序
有什么建议吗?
发布于 2014-04-05 15:05:21
您可以跳转到entry point。我在TMS320 2802x和2803x上使用了这种方法,但它应该是相同的。入口点的符号是c_int00。要了解第二个应用程序中c_int00的地址,必须通过修改链接器命令文件将运行时支持(RTS)库修复到特定地址。
否则,您可以保持RTS不受约束,并创建一个C变量(在固定地址),该变量使用cint_00的值进行初始化。使用这种方法,您的内存映射更加灵活,并且您可以使用C变量添加一个全面的数据结构,其中包含引导加载程序的其他信息,例如CRC、版本号等。
在第二个应用程序中要小心(重新)初始化外设,因为您不是从硬件重置开始的,您可能需要显式重置一些更多的寄存器,或者清除中断请求。
https://stackoverflow.com/questions/22785536
复制相似问题