STM32单片机移植ucosll程序,运行几个小时之后跑飞。
ucsll创建4个任务,OSQPend()消息队列任务,1s定时任务,2s定时任务,按键扫描任务。其中OSQPend()消息队列任务优先级最高,用于接收各中断消息,由于消息队列在没有消息时会将任务挂起,所有没有添加延时函数。
一开始怀疑堆栈溢出,将单片机栈区扩大,各任务堆栈也扩大,仍然无效。
多次测试发现,程序跑飞后OSQPend()消息队列任务仍然能够接受中断消息,怀疑优先级有问题,将消息队列任务的优先级调至最低,再未遇到程序跑飞情况。
只是仍然不解为何会停留在消息队列任务中!!!