第 1 章 FreeRTOS 發(fā)行版 / 1
1.1 本章知識點及學習目標 / 1
1.2 了解 FreeRTOS 發(fā)行版 / 1
1.3 演示程序 / 5
1.4 創(chuàng)建 FreeRTOS 工程 / 6
1.5 數(shù)據(jù)類型和編碼風格指南 / 8
第 2 章 堆內存管理 / 11
2.1 本章知識點及學習目標 / 11
2.2 內存分配方案示例 / 12
2.3 與堆相關的實用函數(shù) / 22
第 3 章 任務管理 / 25
3.1 本章知識點及學習目標 / 25
3.2 任務函數(shù) / 25
3.3 頂層任務狀態(tài) / 26
3.4 創(chuàng)建任務 / 27
3.5 任務優(yōu)先級 / 34
3.6 時間測量和滴答中斷 / 35
3.7 擴展“非運行”狀態(tài) / 38
3.8 空閑任務和空閑任務鉤子 / 46
3.9 更改任務的優(yōu)先級 / 49
3.10 刪除任務 / 53
3.11 線程本地存儲 / 57
3.12 調度算法 / 59
第 4 章 隊列管理 / 69
4.1 本章知識點及學習目標 / 69
4.2 隊列的特點 / 69
4.3 使用隊列 / 72
4.4 從多個來源接收數(shù)據(jù) / 79
4.5 處理大數(shù)據(jù)或可變大小的數(shù)據(jù) / 86
4.6 從多隊列接收 / 91
4.7 使用隊列創(chuàng)建郵箱 / 99
第 5 章 軟件定時器管理 / 103
5.1 本章知識點及學習目標 / 103
5.2 軟件定時器回調函數(shù) / 103
5.3 軟件定時器的屬性和狀態(tài) / 104
5.4 軟件定時器的上下文 / 106
5.5 創(chuàng)建和啟動軟件定時器 / 109
5.6 定時器 ID / 115
5.7 更改定時器的周期 / 117
5.8 重置軟件定時器 / 120
第 6 章 中斷管理 / 125
6.1 本章知識點及學習目標 / 125
6.2 在 ISR 中使用 FreeRTOS API / 126
6.3 推遲中斷處理 / 129
6.4 用于同步的二進制信號量 / 130
6.5 計數(shù)信號量 / 143
6.6 推遲工作到 RTOS 守護任務 / 147
6.7 在中斷服務程序中使用隊列 / 152
6.8 中斷嵌套 / 158
第 7 章 資源管理 / 163
7.1 本章知識點及學習目標 / 163
7.2 臨界區(qū)和暫停調度器 / 166
7.3 互斥量(和二進制信號量) / 169
7.4 守門人任務 / 182
第 8 章 事件組 / 187
8.1 本章知識點及學習目標 / 187
8.2 事件組的特征 / 188
8.3 使用事件組進行事件管理 / 189
8.4 使用事件組進行任務同步 / 199
第 9 章 任務通知 / 207
9.1 本章知識點及學習目標 / 207
9.2 任務通知:優(yōu)勢和局限 / 208
9.3 使用任務通知 / 209
第 10 章 低功耗支持 / 233
10.1 本章知識點及學習目標 / 233
10.2 節(jié)能及與節(jié)能有關的宏 / 233
10.3 ARM Cortex-M 微控制器的低功耗實現(xiàn) / 236
第 11 章 開發(fā)者支持 / 241
11.1 本章知識點及學習目標 / 241
11.2 configASSERT() / 241
11.3 FreeRTOS+Trace / 243
11.4 與調試相關的鉤子(回調)函數(shù) / 246
11.5 查看運行時信息和任務狀態(tài)信息 / 246
11.6 跟蹤鉤子宏 / 254
第 12 章 故障排除 / 259
12.1 本章知識點及學習目標 / 259
12.2 中斷優(yōu)先級 / 259
12.3 棧溢出 / 260
12.4 函數(shù) printf()和 sprintf()的不當使用 / 262
12.5 錯誤的其他常見來源 / 263
附錄 A FreeRTOS 的新版本和新特性 / 265
A.1 FreeRTOS 版本 9 / 265
A.2 FreeRTOS 版本 10 / 268