【发布时间】:2019-10-18 14:28:45
【问题描述】:
对于我们的一个项目,我们每天大约有 0.1% 的设备发生硬件看门狗重置,导致许多不必要的硬件重置。
我们正在尝试找出导致此硬件看门狗重置的原因,但未能在我们的代码中找到任何可能导致此行为的相关内容。
我们使用的是 Arduino 2.4.2 版本,我们不确定问题何时对我们的解决方案产生了错误,因为我们还有其他问题,现在主要已解决。
幸运的是,我们的设备在重新连接时会向我们发送重启原因,我们会收到以下信息:
ResetReason=硬件看门狗;ResetInfo=致命异常:4 标志:1 (WDT) epc1:0x40102329 epc2:0x00000000 epc3:0x00000000 excvaddr:0x00000000 depc:0x00000000;
我们一直在寻找任何东西,当通过EspStackTraceDecoder 我们最终得到:
0x40102329: wDev_ProcessFiq at ??:?
查看不同项目并提出类似问题的搜索大多似乎包括 dns 查询。但不是全部,所以这似乎是一个普遍的问题?
我们可以提取哪些其他信息来帮助我们识别问题?
一些附加信息
- 内存稳定,我们有大约 15-17Kb 的可用堆,具体取决于模式和排队发送/接收队列的数据量。
- 我们这一边的代码使用产量、延迟等,因此应始终提供 S/W 看门狗。这也适用于异步回调代码。
【问题讨论】: