热度 15
2015-5-14 17:50
1048 次阅读|
0 个评论
一、问题:在执行完一个任务一次后,就会进入硬中断,硬件平台stm32f103vct6,IDEkeil, ucoii版本V2.86。 经过追踪发现在进入硬件中断前,是在任务调度函数中。 根据《Cotex-M3权威指南》查看Fault寄存器 查看仿真结果 发现是导致硬Falut的原因是存储器falut或总线fault或用法fault。再依次查询各个falt寄存器(注意这几个寄存器的大小),发现在存储器fault中出现错误。如下图 居然是“取指访问违例”,平常多见的是访问指针数组使用不当造成的错误,这次不一样。经过一番查找,比较大跌眼镜,任务忘了加死循环!! 二、OSFlagPost(FlagsAlarmLed, FLAGS_LED_ALL, OS_FLAG_CLR, 0);最后一个参数传递0也会导致硬Fault,这样就相当于传递给函数一个0地址参数。