FreeRTOS 的通信同步核心解决两大问题:通信(任务之间传递数据 / 事件)、同步(协调任务执行顺序、保护共享资源),一共 5 大核心对象:队列 Queue、信号量 Semaphore、互斥锁 Mutex、任务通知 Task Notification、事件组 Event Group。
一、各工具核心定位与适用场景
表格
| 工具 | 核心作用 | 能不能传数据 | 关键特点 |
|---|---|---|---|
| 队列 Queue | 任务 / 中断间安全传递数据 | ✅支持多字节、结构体 | FIFO 缓冲区,支持 ISR 调用,多生产者多消费者,开销较大 |
| 信号量 Semaphore | 事件唤醒、资源计数 | ❌仅计数 | 二值信号量做事件唤醒;计数信号量管理资源池;无所有权概念,任意任务都可 GIVE |
| 互斥锁 Mutex | 保护共享资源,排他访问 | ❌ | 具备优先级继承;只有持有锁的任务才能释放锁,禁止中断中使用 |
| 任务通知 Task No |