STM32+ucosll程序跑飞问题解决办法 -
来源: 网络用户发布,如有版权联系网管删除 2018-09-07
[导读]
STM32单片机移植ucosll程序,运行几个小时之后跑飞。ucsll创建4个任务,OSQPend()消息队列任务,1s定时任务,2s定时任务,按键扫描任务。其中OSQPend()消息队列任务优先级最高,用于接收各中断消息,由
STM32单片机移植ucosll程序,运行几个小时之后跑飞。
本文引用地址: http://www.21ic.com/app/mcu/201806/764540.htm
ucsll创建4个任务,OSQPend()消息队列任务,1s定时任务,2s定时任务,按键扫描任务。其中OSQPend()消息队列任务优先级最高,用于接收各中断消息,由于消息队列在没有消息时会将任务挂起,所有没有添加延时函数。
一开始怀疑堆栈溢出,将单片机栈区扩大,各任务堆栈也扩大,仍然无效。
多次测试发现,程序跑飞后OSQPend()消息队列任务仍然能够接受中断消息,怀疑优先级有问题,将消息队列任务的优先级调至最低,再未遇到程序跑飞情况。
只是仍然不解为何会停留在消息队列任务中!!
查看评论 回复