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.

[参考译文] TM4C1294KCPDT:系统通电后、TM4C1294芯片崩溃的可能性增加。

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/757145/tm4c1294kcpdt-tm4c1294-chip-crash-probability-increased-when-the-system-was-powered-on

器件型号:TM4C1294KCPDT

降级:

请帮您检查以下问题吗? 您能提供一些建议吗?

客户最近发现系统通电时 TM4C1294芯片崩溃的可能性增加。 我们以前的做法是在系统初始化阶段打开看门狗。 上电后、开始进入主循环、关闭看门狗。 以前、它能够正常通电。 现在发生了崩溃。 我们最初以为它是在关闭看门狗之后发生的。 由于我们不再关闭看门狗、尽管仍有崩溃、我们可以自行将其复位。 重新启动。 但是在我们关闭看门狗之前、它实际上需要30秒的时间、所以有这么长的缓冲时间是合理的、启动电流和其他因素的影响应该不再存在。
       开机时、如果系统未崩溃、系统将永远不会崩溃、因此我们认为崩溃应该与开机有关。
       这种崩溃、在测试后、我们认为 MCU 硬件崩溃、而不是程序运行停止、进入无限循环、也就是说、MCU 停止工作、不再执行指令。 因为我们发现在打开内部看门狗后、即使未执行狗也不会重置系统。 如果 MCU 停止执行命令(通过调试)、系统将复位。
       我们始终开启看门狗、尽管仍存在引导故障、但它可以在崩溃后自行复位。
       在看门狗测试期间、我们发现在打开看门狗后、狗不会执行操作、例如、人为地使其进入无限循环的代码、系统不会复位、只会停止执行指令。 我们要实现的、这种现象是否正常。

 打开看门狗代码:

 SysCtlPeripheralEnable (SYSCTL_Periph_WDOG1);

 

    IntEnable (INT_Watchdog);

    WatchdogReloadSet (WATCHDOG1_base、wdgtime);

 

    WatchdogResetEnable (WATCHDOG1_BASE);

    WatchdogEnable (WATCHDOG1_BASE);

已关闭代码:

  WatchdogIntClear (WATCHDOG1_BASE);

    IntDisable (INT_Watchdog);  

      WatchdogResetDisable (WATCHDOG1_BASE);

 

输入狗码:

  WatchdogReloadSet (WATCHDOG1_base、wdgtime);

我们发现、即使执行了关闭看门狗的代码、如果喂狗的代码仍然存在、它也会在崩溃后自行复位。

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

    你好,Lian,

    要馈送狗、您应该在看门狗 ISR 中使用看门狗 IntClear (WATCHDOG1_BASE)。 我从未见过 ReloadSet 用于喂狗。 请尝试在实施中对其进行调整、然后查看是否解决了问题。

    此外、您可能还缺少此行:

    WatchdogIntEnable (WATCHDOG1_BASE);