1336_FreeRTOS中一组队列辅助接口函数的实现分析

全部学习汇总: GitHub - GreyZhang/g_FreeRTOS: learning notes about FreeRTOS.

以前分析过一组队列的辅助接口函数,当时分析的内容很少。这一次再来一组,多看几个以免整个学习笔记梳理完之后依然觉得没有收获。

这个接口是用来获取当前队列中的元素个数的,是一个结构体成员,类似面向对象的属性的处理,比较容易理解。这个接口的实现中增加了中断保护,这样可以避免中断对队列内容进行篡改。

获取当前队列的剩余空间,有了队列的长度以及当前的队列元素个数,做一个减法即可。如果元素命名不容易看懂,其实可以调用前面分析的队列当前元素个数的查询函数。然而,增加了函数的调用必然会有实时性上的降低,这个接口的设计应该是一个综合考虑的设计结果。

这个是获取当前队列中的元素个数的ISR版本,相比通用的应用版本API来说,少了中断的处理考虑。

队列的删除,首先是一个注册表信息的反注册处理,其次是对申请占用的内容的释放。关于注册表的处理,后面还有相应的函数分析。

在队列的注册表中增加队列的注册。首先遍历队列的注册表,寻找到空闲点位之后进行队列对象指针以及队列名称的绑定处理。由此,反注册的操作其实也很容易推敲出来。

获取队列的名字。这里获取的方式是通过搜索查询注册表而不是直接通过查询对象属性来实现的。感觉这个应该是有特殊的使用考虑,不然的话这种查询多少有点啰嗦了。

把队列从注册表中进行反注册,解除注册效果。其实就是前面注册操作的一个反向处理,首先找到队列所在的点位,接着解除绑定,句柄设置为0。

以上就是这次FreeRTOS队列的辅助功能函数接口的实现分析,大概看了一下,目前我所使用的这个工程中涉及到的队列的功能基本也就分析结束了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值