STM32+ucosll程序跑飞问题解决办法

来源:互联网 发布:2017淘宝最新排名规则 编辑:程序博客网 时间:2024/05/19 17:23

STM32单片机移植ucosll程序,运行几个小时之后跑飞。

ucsll创建4个任务,OSQPend()消息队列任务,1s定时任务,2s定时任务,按键扫描任务。其中OSQPend()消息队列任务优先级最高,用于接收各中断消息,由于消息队列在没有消息时会将任务挂起,所有没有添加延时函数。

一开始怀疑堆栈溢出,将单片机栈区扩大,各任务堆栈也扩大,仍然无效。

多次测试发现,程序跑飞后OSQPend()消息队列任务仍然能够接受中断消息,怀疑优先级有问题,将消息队列任务的优先级调至最低,再未遇到程序跑飞情况。

只是仍然不解为何会停留在消息队列任务中!!!