176_FreeRTOS多来源的队列使用

         这个功能其实我个人倒是觉得跟基础的队列使用的例子差不多,唯一的区别仅仅是数据结构发生了变化,内容发生了变化。唯一值得我关注的或者说是我想深究的其实还不在这里,而是在于任务优先级的变化。因为我觉得OS里面最让人感觉到需要弄明白的其实是调度器,其实是内在的调度机制。

         先看一下例程代码:

         创建了3个task,而3个task中接收的task优先级这次是最低的。两个发送的Task其实是使用了同一个函数。

         考虑到优先级因素,其实这2个task应该是交替进入阻塞状态,然后交替进入到ready状态。直到队列的空间全都满了,然后进入到消息等等待阻塞。这个时候,接收的task应该会被激活。

         这里面的注释中其实有一个很好的解释,开始我还好奇为什么是3而不是5,这个例程中的队列深度改成了3我开始没有注意到。由于接收是没有什么停顿的,因此这里只要发送任务还没有激活就会一直接收完。自然,时间参数上应该也有一个平衡点。

         我觉得这个功能可以用来实现我的CAN通信中的很多协议栈的消息处理,接下来我也会尝试做一下这个实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值