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