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

  • 相关阅读:
    avi怎么转换成视频?
    .NET Core HttpReports 监控
    Unity 安卓(Android)端AVProVideo插件播放不了视频,屏幕一闪一闪的
    2022-08-27 第六小组 瞒春 学习笔记
    B站又备战虚拟主播了
    STM32与GD32笔记
    Spring源码-4.Aware接口、初始化和销毁执行顺序、Scope域
    ResNetv2论文解读
    自定义hooks
    【ESP32_FreeRTOS篇】
  • 原文地址:https://blog.csdn.net/pingxiaozhao/article/details/126142073