降级:
请帮您检查以下问题吗? 您能提供一些建议吗?
客户最近发现系统通电时 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);
我们发现、即使执行了关闭看门狗的代码、如果喂狗的代码仍然存在、它也会在崩溃后自行复位。