工具/软件:
您好、
我正在为 TMS320F280049C 开发定制引导加载程序。 我的存储器映射的结构如下:
-引导加载程序:0x80000–0x81FFF
-应用程序段 1(主):0x82000–0x8FFFF
-应用程序分段 2(备份):0x90000–0x9DFFF
引导加载程序支持用于备份恢复的双组更新。
问题描述:
如果在更新 Sector1 时(特别是在擦除步骤之后但编程完成之前)发生断电:
-开机引导加载程序检测到双扇区版本号后,
-继续跳到扇区 2 在 0x90000。
**然而**在跳转到 Sector2 期间、将出现**连续的看门狗重置**。 看门狗已禁用、跳转函数正确地将函数指针转换为 0x90000。
有趣的是、如果在扇区 2 更新期间发生断电、引导加载程序可以成功回退到扇区 1、而不会出现复位问题。 但是、当扇区 1 被擦除时、会有与系统状态相关的内容。
观察结果:
-已使用 CCS 内存视图验证 Sector2 中的应用程序代码是否存在且有效。
-跳转逻辑检查通过并发出呼叫。
-尝试跳转后, ECU 会反复重置。
我的问题:
-从引导加载程序安全跳转到位于 0x90000 的备份应用程序的建议步骤是什么?
-如何防止这个复位循环?
有人遇到过这种情况吗?
我们非常希望提供有关正确跳转上下文处理的任何建议或示例。