• 方案介绍
    • 第23章-FreeRTOS项目实战–任务与任务、任务与中断之间的通信和同步
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

23.1.0-消息队列和全局变量对比 第23章-FreeRTOS项目实战

02/16 08:21
433
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

联系方式.txt

共1个文件

这个是全网最详细的STM32项目教学视频。
第一篇CSDN文章在这里在这里:
75


STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机 跟随

V3:HAL库开发、手把手教学下面功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、openmv视觉控制、电磁循迹、FreeRTOS、K210视觉智能车(更新中)、K230视觉智能车(更新中)、MSPM0G3507视觉智能车(更新中)

在这里插入图片描述

第23章-FreeRTOS项目实战–任务与任务、任务与中断之间的通信和同步

前面我们讲解了如何创建任务,多任务如何轮流执行,多任务和中断之间经常进行同步或者通信,我们还是像裸机 一样通过全局变量标志位和全局变量数组进行同步和通信是否存在一些隐患那?

23.1-消息队列

23.1.0-消息队列和全局变量对比

回答 为什么要在操作系统中使用消息队列而不是 全局变量

消息队列 vs 全局变量

  • 全局数组需要解决多任务访问冲突,需要加临界区保护全局数组或者数据被多任务访问 可能会出现冲突的原因是: 访问全局变量的操作往往需要多部汇编指令: 读取数据,修改数据,写回数据。而任务调度器可以在任意时刻打断访问指令,切换另一个任务,这样的话,如果在读取数据和写回数据之间发生切换,数据可能就处于未更新的状态。比如导致任务使用上次变量状态,所以没有获得最新数据。所以为了防止出现再读取数据和写回数据之间发生切换,操作系统的消息队列在数据操作时候增加了关闭任务切换相关保护。

    PPT 215到231讲解 数据全局变量的数据竞争,和消息队列是如何解决这个问题的。
    在这里插入图片描述

  • 消息队列可以实现超时机制消息队列的接收或者发送均可以设置超时时间,这样可以提高系统的响应性和保证系统灵活性和容错能力。
  • 消息队列可以实现FIFO和LIFO机制可以设置先进先出或者后进先出的的数据机制,更加灵活便于数据处理。

 

  • 联系方式.txt
    下载
点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!