对于我们的一个项目,我们进行了硬件监视程序重置,每天大约发生在我们设备的0.1%上,导致许多不必要的硬件重置。
[我们正在尝试找出导致此硬件看门狗复位的原因,但未能在我们的代码中找到任何相关内容,这将导致此行为。
我们正在使用Arduino 2.4.2版本,由于问题已经解决了,因此我们不确定,因为问题已经解决了。
幸运的是,我们的设备在重新连接时向我们发送了重启原因,在那里我们收到以下信息:
ResetReason =硬件监视程序; ResetInfo =致命异常:4标志:1(WDT)epc1:0x40102329 epc2:0x00000000 epc3:0x00000000 excvaddr:0x00000000depc:0x00000000;
[我们一直在寻找任何东西,当通过EspStackTraceDecoder
结束时,我们发现:
0x40102329:wDev_ProcessFiq位于??:?
搜索不同项目的搜索提出了类似的问题,其中大部分似乎包含dns查询。但不是全部,所以这似乎是一个普遍问题?
我们可以提取哪些其他信息来帮助我们识别问题?
一些其他信息
检查您是否正在读取任何错误的内存。硬件WDT的主要原因是,如果软件(或)cpu不再工作,它将触发复位。
您的CPU可能在执行某些指令时被卡住,并且不会返回。