在freeRtos中实现队列中的信号量

时间:2014-06-11 13:08:55

标签: task freertos

freeRtos中的队列从一开始也是互斥的,我的意思是,我应该创建某种互斥以便从队列中写入或读取,或者它是否已经由函数xQueueRead和xQueueSend实现。

2 个答案:

答案 0 :(得分:1)

如果查看“queue.c”中的源代码,您会注意到xQueueGenericSend()和xQueueGenericReceive()函数正在使用tastENTER_CRITICAL()/ taskEXIT_CRITICAL()宏对来确保函数的原子操作,感觉,是你要求的互斥。

答案 1 :(得分:1)

FreeRTOS队列是线程安全的,您不需要实现自己的锁定。请参阅有关队列的FreeRTOS documentation

  

队列是任务间通信的主要形式。他们可以   用于在任务之间以及中断和任务之间发送消息。   在大多数情况下,它们用作线程安全FIFO(先进先出)   缓冲器