"); //-->
最近在使用uC/OS-II操作系统的过程中,发现了一个问题。就是uC/OS-II写的程序经常复位。上网搜,有些人以前已经遇到过这个问题,但是没有一个答案。没办法只好自己找原因。总算功夫不负有心人,花了半天的时间最后找到原因啦。其实很简单,就是由于中断函数处理的不对,没有正确保存和恢复寄存器,破坏了PC、CPSR等寄存器的内容,造成推出中断函数时,程序复位或跑飞。有两种办法可以解决,一种是在中断函数中使用__irq标识,让编译器自动添加保存和恢复可能会被破坏的寄存器;另一种办法是自己写一段汇编语言程序段,实现保存和恢复可能会被破坏的寄存器,然后在汇编语言中象调用普通函数那样调用C语言写的中断函数。希望再有人碰到类似的问题,不会象我一样费这么长的时间来解决它。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。