新闻  |   论坛  |   博客  |   在线研讨会
关于使用uC/OS-II编制的程序经常复位的问题
transformer | 2008-03-17 13:12:44    阅读:1868   发布文章

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

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
这样的事情是我们所需要的
最近文章
遇龙河沿途的风景
2008-05-28 18:04:21
test
2008-05-28 14:10:42
推荐文章
最近访客