freertos变量
时间: 2024-12-28 08:24:06 浏览: 45
### FreeRTOS 中的关键变量及其作用
#### 当前任务指针 `pxCurrentTCB`
`PRIVILEGED_DATA TCB_t * volatile pxCurrentTCB = NULL;` 是一个指向当前正在执行的任务控制块 (Task Control Block, TCB) 的指针[^1]。此变量用于跟踪哪个任务当前处于活动状态。
#### 就绪任务列表 `pxReadyTasksLists`
另一个重要的全局变量是 `PRIVILEGED_DATA static List_t pxReadyTasksLists[configMAX_PRIORITIES];`,这是一个数组,其中每个元素代表不同优先级下的就绪任务链表。该结构允许调度程序快速找到最高优先级的可运行任务并切换到它。
#### 数据类型的命名约定
对于数据类型,在 FreeRTOS 中采用了特定的命名规则来提高代码的一致性和易读性。例如,所有由 FreeRTOS 提供的数据类型名称通常以大写字母开头,并且会带有 `_t` 后缀表示这是 typedef 类型[^2]。这有助于区分标准 C 库中的类型和其他第三方库可能引入的名字冲突风险。
#### 使用任务通知代替传统 IPC 方式的优势
当涉及到进程间通信 (IPC),FreeRTOS 推荐使用任务通知作为替代方案之一。相比传统的基于队列或信号量的方法,这种方法不仅提高了性能——大约可以减少 45% 的解封时间消耗—而且还能节省 RAM 资源占用,因为不需要额外分配存储空间给消息传递机制[^3]。
```c
// 示例:发送任务通知
void vSendNotification(TaskHandle_t xTaskToNotify)
{
BaseType_t xResult;
// 发送通知而不携带附加信息
xResult = xTaskNotifyGive(xTaskToNotify);
}
```
阅读全文
相关推荐

















