This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TMS320F280049C:F280049软件复位

Guru**** 2211160 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/923652/compiler-tms320f280049c-f280049-software-reset

器件型号:TMS320F280049C

工具/软件:TI C/C++编译器

大家好、

我们在器件中使用自定义引导加载程序、我们希望能够将正在运行的器件重置为引导加载程序。 我想使用引导 ROM 中的修改后的 ExitBoot 方法、我已经使用该方法从引导加载程序进入应用程序。 然后、我意识到这种方法是不可擦除的、因为我们使用的是锁定寄存器、这样就不会以这种方式解锁。

在过去、我们使用 WD 来触发 F28069的完全复位、但我希望有一个替代解决方案。 否则、它将无法检测应用程序上次运行时真正发生的看门狗以处理一些错误记录。 是否有执行软件复位的常用方法?

此致

Wolfgang

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我假设您的自定义引导加载程序位于闪存中。 现在、您如何决定是执行应用程序还是执行自定义引导加载程序? 我不明白你的意思,“然后我意识到这种方法是不可行 的,因为我们使用的是锁定寄存器,而不是这样解锁的。” 请澄清。  

    SPRUI33C 第89页的表3-2总结了不同的复位源。 是否可以在 RAM 位置写入唯一的值、然后启动 WD 复位(以调用自定义引导加载程序)以区分真正的 WD 复位和故意触发的复位以运行自定义引导加载程序?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、引导加载程序位于闪存中、引导 ROM 配置为引导至引导加载程序的入口点。 然后、自定义引导加载程序开始通信、如果没有工具会停止引导加载程序、它将跳转到应用程序入口点。 在运行时、应该可以在引导加载程序和应用程序之间切换。 通过触发复位、还应该能够脱离错误状态、这也会锁定一些寄存器以实现安全状态。 现在、使用从引导 ROM 源获取的 ExitBoot 代码将无法实现这一点。

    对于 RAM 方法、我必须承认我错过了 RAM 的初始化被声明在一个 POR 上发生。 由于我似乎没有错过特定的软件复位、我可以触发我将尝试使用具有 RAM 中特定值的 WD 方法。 感谢你的帮助。