RTX os error问题debug

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中检查。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值