请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28035 主题中讨论的其他器件:C2000WARE
工具/软件:Code Composer Studio
我有一个位于闪存扇区 A 的 CAN 闪存内核。 它的任务是将我的应用闪存到扇区 B - H。 器件在上电时直接引导至内核、 如果一段时间后应用程序未接收到基于 CAN 的外部触发信号、则会跳转到该应用程序。 我的应用程序中还具有可随时跳转到内核的逻辑。 在跳转到内核之前、应用程序将向 RAM 中的某个位置写入已知密码。 内核使用此密码来确定它是刚刚从应用程序调用、还是刚从冷启动中调用。
我的内核是使用 C2000Ware 中的 F2803x_flash_kernel 示例创建的。
这一切都很完美、只有一种奇怪的行为。 如果我从应用程序跳转到内核并通过 CAN 对新应用程序进行编程、内核所执行的最后一步是跳转到入口点、它就是这样做的。 但是、如果我通过冷启动进入内核、然后闪存应用程序、它将不会跳转到应用程序。 但是、如果我重启器件、则它将正常运行应用程序(在内核中花费一些时间直到超时)。
这两种情况之间不应有功能差异。 最后一步应始终是跳转到新编程的应用程序的入口点。
是否有什么想法会导致这种情况、或从何处开始寻找?