大家好,我在使用AM3354+linux进行开发,长时间运行出现系统时钟错误,系统时钟每171秒左右会被重置。
调试发现作为系统tick的DMtimer2工作异常,在DMtimer2发生中断OVERFLOW中断之后,没有正确的执行中断响应函数对timer进行重置,Timer Counter Register被设置为0,导致DMTimer2的OVERFLOW中断171.8S产生一次。通过cat /proc/interrupts 查看gp timer状态,异常后也是需要171.8s中断次数加1。
DMTimer2中断为什么会工作异常?哪些原因可能导致发生异常?