什么情况下,软件定时器被全部杀死
我的主板上面的工作流程:DA14580作为从机与另一个型号的单片机进行串口通讯,DA14580由外部上升沿电平触发唤醒后接收串口数据。接收完数据后进入休眠。外部主机每隔1s对DA14580进行一次唤醒并以9600波特率发送8个字节的数据。之后DA14580进入extend sleep 模式。
我用多个样机进行测试的时候,发现串口通讯5分钟左右后,DA14580的功耗不再动态的变化而是维持在400ua左右。 跟踪发现用于定时使DA14580进入extend sleep 模式的软件定时器被杀死了(失效了),导致了DA14580没进入extend sleep 模式,此时DA14580功能还是正常的。进一步跟踪发现其他所有软件定时器也都失效了。
一开始我怀疑是低频RC(32Khz)不稳定,于是我在主板上添加了32K晶振时钟,结果并没有改变。然后我又进行了进一步实验,发现只串口有收发数据的时候,才会出现5分钟左右软件定时器都被kill的情况。如果串口不收发数据则软件定时器工作正常。
请问上述问题我该如何追踪?