Other Parts Discussed in Thread: CC3200
这是一个问题,似乎以前已经提出过,但从未得到答复。
我继承了一个使用 CC3200 CPU 的项目、该 CPU 已在现场部署了一段时间。 我们一直收到报告、其中一些装置处于"挂起"状态、需要重启电源才能使其重新启动并运行。 我仔细查看了代码、特别是看门狗区域、发现当看门狗超时时、看门狗 ISR 会调用休眠重启。 虽然这在大多数情况下似乎可以正常工作、但我不了解看门狗应该如何工作、因为它要求软件的某些元件正常运行以复位电路板。 我修改了代码、让看门狗继续复位电路板、发现电路板挂起、需要重启电源来重新启动代码、而不是执行干净的复位。 虽然不清楚这是否是现场发生的事情、但它是相关的、我想达到的目标。
我已经执行了一些进一步的研究、发现如果我在系统启动期间通过位于紧密环路来强制在代码中的不同点进行看门狗复位、那么它可以正常工作并将电路板复位、直到调用 sl_Start (NULL、NULL、NULL)函数。 此后、如果看门狗触发、则板会挂起、不会复位。
我想提出以下补充意见。
该软件具有用于在启动时检测上电原因的代码、如果上电原因是看门狗引起的、则执行休眠复位。
代码会拦截硬故障中断、并在触发后执行休眠重启。
代码中未使用 RTOS。
我们确实需要找到一个解决方案、因为现场有数千个单元。
此致
Martin