alios thing 信号量_消息队列_消息队列_AliOS Things内核_API参考文档_AliOS Things 文档_IoT物联网操作系统 - 阿里云...

多任务系统中,任务间互相同步等待共享资源,我们一般会使用信号量,如果需要互斥,则使用互斥量。而任务间互相收发消息则可以使用消息队列。消息队列(queue)使用类似信号量的机制进行任务间的同步,并使用环形缓冲池(ring

buffer)来进行消息的队列缓冲管理,以达到任务间收发消息的阻塞和通知管理。Queue的实现目的在于任务间互相收发消息。一般如果有信号量机制,用户就可以自己实现一套任务间的阻塞和通知收发功能,其本质在于接收方通过信号量的获取来开始接收消息,发送方通过信号量的释放来通知接收方处理。接收任务在无消息时被阻塞,消息到来时被唤醒处理。Queue就是基于这样一种类信号量机制来进行消息的收发。再加上ring

buffer的缓冲机制来缓存任务间的消息队列,就组合成了本章的消息队列(queue)。其既包含消息的缓冲队列,又包含了消息的通知机制。消息队列模块整体受宏RHINO_CONFIG_BUF_QUEUE开关控制,对应的AOS API接口实现位于:core/osal/aos/rhino.c中RHINO_CONFIG_BUF_QUEUE宏定义包含实现;对应的krhino内部实现位于:core/rhino/k_buf_queue.c。

包含头文件

#include //直接对应头文件

API列表

aos_queue_new()

创建一个队列,指定缓冲区大小,以及最大数据单元大小

aos_queue_free()

删除一个队列,并释放阻塞在其中的任务

aos_queue_send()

向queue内发送数据,并唤醒存在的第一个高优先级阻塞任务

aos_queue_recv()

从queue内收取

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值