Arduino与FreeRTOS-FreeRTOS队列管理

本文详细介绍了在Arduino上使用FreeRTOS进行队列管理,包括队列的介绍、FreeRTOS队列API,以及如何在Arduino项目中实现队列的读写操作。通过队列,不同任务间能实现数据通信,提高程序效率。
摘要由CSDN通过智能技术生成

FreeRTOS队列管理

在上一篇文章Arduino与FreeRTOS-FreeRTOS配置与简单任务创建中,已经了解了 FreeRTOS 与 Arduino的任务管理过程。 在本文中,我们将学习如何使用 FreeRTOS API 创建队列。 单个任务无法创建一个高效且完整的应用程序。 因为这些独立的任务是具有自己的堆栈、内存和执行作业的较小程序。 因此,很明显我们需要一种机制让这些自主任务相互通信。 以便他们可以相互共享数据或消息。

与其他现代 RTOS 内核一样,FreeRTOS 内核也提供了任务间数据通信的过程。 这些被称为消息队列。 它们是所有 FreeRTOS 通信和同步机制使用的底层原语。 它们用于在任务之间发送和接收消息。

1、队列介绍

消息队列是一种保存固定大小数据项的 FIFO 缓冲区。 此外,队列可以容纳的项目数在初始化后也是固定的。 通常,任务将数据写入缓冲区的末尾并从缓冲区的前端读取。 但是也可以在前端写。 多个作者和读者可以从缓冲区写入和读取。

但是一次只有一个写入者/读取者可以访问缓冲区,而其他任务保持阻塞。 因此,在读取和写入缓冲区时都可能发生阻塞。

1)阻塞队列读取

在以下情况下可能阻止读取:

    • 0
      点赞
    • 2
      收藏
      觉得还不错? 一键收藏
    • 打赏
      打赏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    视觉&物联智能

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值