2014-06-11 35 views

回答

1

如果您查看「queue.c」中的源代碼,您會注意到xQueueGenericSend()和xQueueGenericReceive()函數正在使用tastENTER_CRITICAL()/ taskEXIT_CRITICAL()宏對來確保函數的原子操作,一種感覺,就是你所要求的互相排斥。

1

FreeRTOS隊列是線程安全的,您不需要實現自己的鎖定。有關隊列請參見FreeRTOS documentation

隊列是主要的任務間通信形式。它們可以是 用於在任務之間以及中斷和任務之間發送消息。 在大多數情況下,它們用作線程安全FIFO(先進先出) 緩衝區