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.
工具与软件:
您好!
我已阅读文章标题为: TMS570LC4357:WDT 处理-在看门狗复位时
我通过以下方式使用看门狗:
void startWatchDog(void) { /*watch dog*/ dwdInit(WDOG_REG, WDOG_TIMEOUT); //set pre scaler and timer to use dwdCounterEnable(WDOG_REG); //turn on } /************************************************************************************* * Function name : petWatchdog() * Description : reset the watch dog * * @return - nothing ***************************************************************************************/ void petWatchDog(void) { dwdReset(WDOG_REG); //reset watchdog }
在看门狗超时且 MCU 复位后、应用程序不会恢复、即使在从读取引用的帖子中添加了以下位后也不会出现任何情况。
下面是几个问题:
在看门狗超时后的文档中、它讨论了两个选项:发生复位或发生不可屏蔽中断、如何针对非窗口式看门狗配置该选项、或者唯一的复位选择是如何配置该选项?
2.在文档中、特别是"系统异常状态寄存器"中、它表示一个看门狗复位的标志位于第13位、在引用帖子中的示例中、它使用文档中显示位12未被使用的位。
我在您的示例中添加了以下 hl_sys_startup.c
case WATCHDOG_RESET: case WATCHDOG2_RESET: /* USER CODE BEGIN (15) */ _memInit_(); if (_errata_SSWF021_45_both_plls(PLL_RETRIES) != 0U) { /* Put system in a safe state */ handlePLLLockFail(); } _coreEnableEventBusExport_(); systemInit(); _coreEnableIrqVicOffset_(); vimInit(); esmInit(); /* USER CODE END */ break;
为什么不使用条件语句 WATCHDOG_RESET、它在条件语句中的作用是什么?
谢谢
您好、Joe。
TMS570LC4357:如何使用数字看门狗-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛请参阅上面的主题、我在这里解释了如何为看门狗配置 NMI 和复位以及他们的示例。
2. 在文档中、特别是"系统异常状态寄存器"、它表示看门狗复位的标志位于第13位、在所引用的帖子中、它使用文档中表示未使用第12位的位...[/QUOT]
也有位13、对吧? 位12和13都用于识别看门狗复位。 我不知道他们保留第12位和第13位用于看门狗的确切原因、我怀疑是因为与其他较旧的器件修订版兼容。
——
谢谢、此致、
Jagadish。