嵌入式学习小组
直播中

张娟

7年用户 2014经验值
私信 关注

怎么理解这样一个二值信号量可以表示“有”与“无”?


创建二值信号量时参数semSEMAPHORE_QUEUE_ITEM_LENGTH是0,即这一个队列项是不占用字节的,怎么理解这样一个二值信号量可以表示“有”与“无”?这唯一的一个队列项长度是0那不就等于是没有队列项的队列吗?向其发送信号量怎么可能发送进去呢?

回帖(6)

陈琳

2020-7-15 09:02:24
队列的两种状态,满和空。不刚好就是二值信号量,直接判断队列状态,不需要往队列里面写数据
举报

李彦成

2020-7-15 09:10:37
列队创建的底层有这么一行代码,可以解决的你疑惑。。                pxNewQueue = ( Queue_t * ) pvPortMalloc( sizeof( Queue_t ) + xQueueSizeInBytes );
举报

杨秀珍

2020-7-15 09:21:37
队列项的长度是0字节,难到不是说明这个队列永远是空吗? 怎么会有所谓的“满”呢?应该至少占一个字节 也好理解 “满”与“空”啊?左工!
举报

赵文娜

2020-7-15 09:37:30
谢谢 ,明日再啃啃这段代码
举报

更多回帖

发帖
×
20
完善资料,
赚取积分