本问题困扰几天,望周立功公司及各位指点。 背景:使用LPC2292,ucosii操作系统平台,cpu开放UART0收发中断、UART1收发中断、I2C中断,UART0、UART1收发中断用于数据传输,I2C中断写7290,I2C速率10k,UART0、UART1收发中断频率500ms。
故障:程序运行一段时间后,出现异常,程序一直运行在低优先级,无法调度。调试发现,OSintnesting==2。
调试: 1)关闭I2C中断,不操作7290,开放UART0收发中断、UART1收发中断,程序一直运行,无故障。 2)提高或降低I2C速率,程序出现复位、跑飞。 3)将I2C中断设为最高优先级,程序运行较长一段时间后,故障出现。 4)将I2C中断设为FIQ,故障出现概率大大降低,运行大半天后仍有故障出现。
所以,想请各位帮忙分析。有没有好的解决办法。谢谢!
|