freeRtos中的队列从一开始也是互斥的,我的意思是,我应该创建某种互斥以便从队列中写入或读取,或者它是否已经由函数xQueueRead和xQueueSend实现。
答案 0 :(得分:1)
如果查看“queue.c”中的源代码,您会注意到xQueueGenericSend()和xQueueGenericReceive()函数正在使用tastENTER_CRITICAL()/ taskEXIT_CRITICAL()宏对来确保函数的原子操作,感觉,是你要求的互斥。
答案 1 :(得分:1)
FreeRTOS队列是线程安全的,您不需要实现自己的锁定。请参阅有关队列的FreeRTOS documentation:
队列是任务间通信的主要形式。他们可以 用于在任务之间以及中断和任务之间发送消息。 在大多数情况下,它们用作线程安全FIFO(先进先出) 缓冲器