"); //-->
最近在使用uC/OS-II操作系统的过程中,发现了一个问题。就是uC/OS-II写的程序经常复位。上网搜,有些人以前已经遇到过这个问题,但是没有一个答案。没办法只好自己找原因。总算功夫不负有心人,花了半天的时间最后找到原因啦。其实很简单,就是由于中断函数处理的不对,没有正确保存和恢复寄存器,破坏了PC、CPSR等寄存器的内容,造成推出中断函数时,程序复位或跑飞。有两种办法可以解决,一种是在中断函数中使用__irq标识,让编译器自动添加保存和恢复可能会被破坏的寄存器;另一种办法是自己写一段汇编语言程序段,实现保存和恢复可能会被破坏的寄存器,然后在汇编语言中象调用普通函数那样调用C语言写的中断函数。希望再有人碰到类似的问题,不会象我一样费这么长的时间来解决它。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
Applilet软件安装演示视频
TQ5638 KPCS CDMA/GPS 2090 ~ 1620 MHz双模式接收器
五步法降低认证费用
TQ9223C TDMA/AMPS l000~800 MHz接收器
UCIe 核心技术细节悉数落地
VB6程序员:未来在哪里?
欧洲各国电动汽车普及度差异显著
SH7764车载导航系统解決方案
MICRF002/MICRF022 ASK/OOK 440~300 MHz接收器
Anthropic年化营收破 140 亿,完成 300 亿新融资
安世半导体调查启动 闻泰科技唯有苦等
用单片机AT89C2051控制的充电器
用单片机控制CD-ROM播放歌曲的制作资料
用单片机超声波测距电路的设计
质疑国内大学的研发价值
以芯片设计提升计算效率:每次查询的最低能耗
如何学习VC与我为什么选择C/C++
H8S2、28x汽车仪表板解決方案
用VC++6.0实现PC机与单片机之间的串口数据交换
射频在无人机中的应用
中国三季度云服务收入同比增长 24%
SH7264汽车数字仪表板解決方案
硬金,硬功夫:设计经久耐用的PCB边缘连接器
MAX2306/MAX2308/MAX2309 I/Q双频三模式中频接收器
ROHM推出UCR10C分流电阻系列,提升电流检测密度
用单片机设计现场总线转换网桥
S-Record文件格式说明
AdvancedPCB在硅谷扩充HDI能力,引入先进真空填孔技术
DR5000 00K 916.50 MHz接收器模块
C编译器软件安装演示视频