当前位置: 首页 > news >正文

FreeRTOS在中断上下文中设置事件组,调度很慢的的解决方法

        当前在stm32mp157的M4内核中使用freertos,一直在定时器和外部输入中断的回调函数中设置事件组的位,在其他任务中,获取阻塞等待该该事件组,一直用的都比较稳定,最近软件增加了两个任务,突然发现在中断回调函数中设置的事件,在任务中很难被响应,甚至不响应,经过多方面的查找资料和测试,终于发现了解决方法,具体如下:

1、在freertos中,中断的回调函数,虽然不是中断函数本身,但是也处于中断的上下文,所以需要使用中断安全的接口;

2、在中断中调用设置事件组的接口xEventGroupSetBitsFromISR()时,该函数并不会直接修改事件组,而是向freertos的守护任务(Daemon Task)发送一个命令,让守护任务进行处理;

3、由于守护任务的优先级比较低,所以当任务比较多时,就会有延时,具体的处理流程如下图所示:

所以,就会出现在中断中设置事件组,其他任务响应很慢,而在任务重设置事件组,则响应很快的情况。

怎么解决呢?很简单,在中断中,不要使用事件组,而改用任务通知;

http://www.dtcms.com/a/304125.html

相关文章:

  • 智慧工地系统:科技如何重塑建筑现场?
  • macOS “Sploitlight“漏洞曝光:攻击者可窃取Apple Intelligence缓存数据
  • 用动态的观点看加锁
  • 新升级超值型系列32位单片机MM32G0005
  • C++类中动态内存分配注意手册
  • python新手,学习计划
  • 每日一题7.29
  • 当贝纯净版_海信ip811n海思mv320处理器安卓4.42及9.0主板优盘免拆刷机固件及教程
  • [Token]ALGM: 基于自适应局部-全局token合并的简单视觉Transformer用于高效语义分割, CVPR2024
  • 安卓逆向2-安卓刷机和获取root权限和安装LSPosed框架
  • 博物馆 VR 导览:图形渲染算法+智能讲解技术算法实现及优化
  • 想要批量提取视频背景音乐?FFmpeg 和转换器都安排上
  • 机器学习、深度学习与数据挖掘:三大技术领域的深度解析
  • centos7安装Docker
  • 机器学习、深度学习与数据挖掘:核心技术差异、应用场景与工程实践指南
  • Docker学习相关视频笔记(二)
  • Linux 系统启动与 GRUB2 核心操作指南
  • 7月29日星期二今日早报简报微语报早读
  • Ubuntu上开通Samba网络共享
  • Ubuntu22.04系统安装,Nvidia显卡驱动安装问题
  • RHCE综合项目:分布式LNMP私有博客服务部署
  • Ubuntu25.04轻量虚拟机Multipass使用Shell脚本自动创建并启动不同版本Ubuntu并复制文件
  • ubuntu22.04 安装 petalinux 2021.1
  • 【prompt】Lyra 提示词深度研究
  • Apache Ignite 关于 **负载均衡(Load Balancing)** 的详细介绍
  • 信创国产Linux操作系统汇总:从桌面到服务器,百花齐放
  • RAG面试内容整理-8. 文档分块策略(滑动窗口、语义切分)
  • pycharm自己的包导入不进去解决方案
  • 博途SCL: Input、Output、Static、Temp、Constant、InOut 的详细介绍及案例
  • TCMalloc 内存分配原理简析