RTX os error问题debug

本文探讨了RTOS中常见的错误类型,包括任务堆栈溢出、中断FIFO队列缓冲区溢出、邮箱满和定时器回调队列溢出。针对这些问题,提出了相应的解决策略,如增加任务堆栈大小、优化中断处理速度、限制中断触发频率以及确保及时处理定时器回调。这些解决方案有助于提高RTOS系统的稳定性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

os error 1

现象:

        有时会发现os_idle_demon出现overflow,但实际不是os_idle_demon出现overflow而是其他task

原因:

        当前task stack overflow。

处理办法:

        in config中增加task stack

        减少stack使用,用malloc申请memory

注意:

        系统只会在SVC和PendSV handler中检查

os error 2

原因:

        当前ISR FIFO Queue buffer overflow。这是因为在中断处理函数中过多的发送message,设置信号量,设置event等。

处理办法:

        中断处理函数运行速冻要快,不要调用长时间运行的函数。

        不要在中断中过多发送message,信号量,event

        减少中断触发频率。

        如果task是混合任务模式(有相同优先级task同时有不同优先级的task)时,不能使能Round-Robin Task switching--->#define OS_ROBIN       0

os error 3

原因:

        mail box overflow,中断中发送的message,没有task在等待接收。

处理办法:

        接收message的task不要长时间处理某个消息,要快速进入接收状态。

        减少发送消息频率。

注意:

        只会在PendSV Handler中检查。

os error 4

原因:

        Timer Callback Queue overflow。OS Timer callback没有及时处理,有新的timer到时间了。

处理办法:

        Timer callback处理时间要短

        减少同时的start的OS Timer。

        周期性的OS timer,间隔不要设的过短。

注意:

        sysTick handler中检查。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值