工具/软件:Code Composer Studio
这是情况。 我已经创建了一个基于CAN的闪存内核,它驻留在闪存扇区A中。 它能够闪存B - H中的新应用程序 。该设备将引导至闪存内核, 一段时间后,如果它没有收到特定的CAN消息,它将跳转到应用程序。 如果它确实收到CAN消息,它将保留在闪存内核中,允许用户通过CAN刷新新新应用程序。 我还可以随时从应用程序跳回闪存内核。 所有这些都很好。
但是,如果是冷启动还是来自应用程序,则在初始化闪存内核(CAN波特率,CPU计数器中断等)时需要执行一些额外的步骤。 我在从应用程序跳转时不需要执行这些额外的步骤,因为应用程序已经设置了正确的CAN波特率,并且我希望内核使用应用程序的波特率,无论它是什么。 从冷启动开始,内核将使用与应用程序不同的预定义波特率,这是可以的。
闪存内核是否有任何方法可以判断它是刚从冷启动开始,还是被应用程序调用? 我想写一些很少使用的寄存器在应用程序中,然后内核可以读取。 如果寄存器设置为非默认值,则它知道称为它的应用程序。 或者在RAM中定义一个内核和应用程序链接程序文件中的位置,我可以在其中存储数据以便在两个应用程序之间共享? 假设我能弄清楚怎么做,这是否可行? 我假设RAM在启动时未初始化为某些已知值,因此在冷启动时,它将被设置为我在应用程序中写入的值的可能性很小。
总之,我想我是在问如何在从不同闪存扇区运行的两个不同应用程序之间传递信息。
有什么建议? 我的困境是否合理?