FreeRTOS 源碼詳解與應用開發 — 基於 STM32 (第2版)

許穎勁,左忠凱,劉軍編著

  • 出版商: 北京航空航天大學
  • 出版日期: 2023-09-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 381
  • 裝訂: 平裝
  • ISBN: 7512441002
  • ISBN-13: 9787512441002
  • 相關分類: STM32
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

本書輔以大量的例程,全面講解了FreeRTOS的原理以及源碼,主要內容包括任務管理和任務調度、系統裁減和配置、
時間管理、隊列、信號量、軟件定時器、事件標誌組、任務通知、低功耗Tickless模式、空閒任務以及內存管理等。
同時,本書配有大量的圖例,對於想要深入學習RTOS類系統原理的人來說是一個不錯的選擇。
本書是再版書,相比舊版,使用了更新的FreeRTOS內核版本作為解析對象,
並針對FreeRTOS在多種ARM Cortex- M 架構下的運行進行了介紹;同時,本書對知識點的介紹更加詳細、講解的先後順序更加合理。
本書配套資料包括視頻教程、文檔教程、各個例程的源碼及相關參考資料。

目錄大綱

【目錄】
第1章FreeRTOS簡介 1
1.1 初識FreeRTOS 1
1.1.1 什麼是FreeRTOS 1
1.1.2 為什麼選擇FreeRTOS 2
1.1.3 FreeRTOS的點 2
1.1.4 商業許可 2
1.2 磨刀不誤砍柴工 3
1.2.1 查找資料 3
1.2.2 FreeRTOS官方文檔 5
1.2.3 Cortex M 架構資料 7
1.3 FreeRTOS源碼初探 7
1.3.1 FreeRTOS源碼下載 7
1.3.2 FreeRTOS文件預覽 9
第2章FreeRTOS移植 11
2.1 FreeRTOS移植11
2.1.1 移植前準備11
2.1.2 添加FreeRTOS文件 12
2.1.3 修改SYSTEM 文件 15
2.1.4 修改中斷相關文件22
2.1.5 可選步驟(建議完成) 24
2.1.6 添加應用程序25
2.1.7 使用AC6編譯工程(擴展) 32
2.2 FreeRTOS移植實驗33
2.2.1 功能設計33
2.2.2 軟件設計34
2.2.3 下載驗證35
第3章FreeRTOS系統配置 37
3.1 FreeRTOSConfig.h文件 37
3.2 config配置項37
3.2.1 基礎配置項矯p扷CRS翪38
3.2.2 內存分配相關定義40
3.2.3 鉤子函數相關定義41
3.2.4 運行時間和任務狀態統計相關定義42
3.2.5 協程相關定義43
3.2.6 軟件定時器相關定義43
3.2.7 中斷嵌套行為配置43
3.2.8 斷言44
3.2.9 FreeRTOS MPU殊定義 44
3.3 INCLUDE配置項 45
3.4 其他配置項46
第4章FreeRTOS中斷管理 47
4.1 ARM Cortex M 中斷 47
4.1.1 簡介47
4.1.2 中斷優先級管理47
4.1.3 3個系統中斷優先級配置寄存器 49
4.1.4 3個中斷寄存器 50
4.1.5 中斷控制狀態寄存器52
4.2 FreeRTOS中斷配置項52
4.3 FreeRTOS中斷管理詳解54
4.3.1 PendSV和SysTick中斷優先級 54
4.3.2 FreeRTOS開關中斷55
4.3.3 FreeRTOS進出臨界區56
4.4 FreeRTOS中斷測試實驗59
4.4.1 功能設計59
4.4.2 軟件設計59
4.4.3 下載驗證62
第5章FreeRTOS任務基礎知識 63
5.1 單任務和多任務系統63
5.1.1 單任務系統63
5.1.2 多任務系統64
5.2 FreeRTOS任_____羅_務狀態65
5.3 FreeRTOS任務優先級66
5.4 FreeRTOS任務調度方式67
5.5 FreeRTOS任務控制塊68
5.6 FreeRTOS任務棧69
第6章FreeRTOS任務相關API函數 71
6.1 FreeRTOS創建和刪除任務相關API函數 71
6.2 FreeRTOS任務創建與刪除實驗(動態方法) 75
6.2.1 功能設計75
6.2.2 軟件設計75
6.2.3 下載驗證78
6.3 FreeRTOS任務創建與刪除實驗(靜態方法) 79
6.3.1 功能設計79
6.3.2 軟件設計79
6.3.3 下載驗證83
6.4 FreeRTOS掛起和恢復任務相關API函數 84
6.5 FreeRTOS任務掛起與恢復實驗85
6.5.1 功能設計85
6.5.2 軟件設計86
6.5.3 下載驗證89
第7章FreeRTOS列表和列表項 90
7.1 FreeRTOS列表和列表項簡介90
7.1.1 列表90
7.1.2 列表項91
7.1.3 迷你列表項92
7.2 FreeRTOS列表和列表項相關API函數 92
7.3 FreeRTOS操作列表和列表項的宏98
7.4 FreeRTOS列表項的插入與刪除實驗99
7.4.1 功能設計99
7.4.2 軟件設計99
7.4.3 下載驗證 102
第8章FreeRTOS系統啟動流程及任務相關函數解析 107
8.1 FreeRTOS開啟任務調度器 107
8.1.1 函數vTaskStartScheduler() 107
8.1.2 函數xPortStartScheduler() 110
8.2 FreeRTOS啟動個任務 112
8.2.1 函數prvStartFirstTask() 112
8.2.2 函數vPortSVCHandler() 113
8.3 FreeRTOS任務狀態列表 115
8.4 FreeRTOS創建任務函數解析 116
8.5 FreeRTOS刪除任務函數解析 127
FreeRTOS源碼詳解與應用開發———基於STM32(第2版)
*         4 ·
8.6 FreeRTOS掛起任務函數解析 130
8.7 FreeRTOS恢復任務函數解析 134
8.8 FreeRTOS空閒任務 135
第9章FreeRTOS任務切換 137
9.1 PendSV異常 137
9.2 PendSV中斷服務函數 139
9.3 FreeRTOS確定下一個要運行的任務 143
9.4 PendSV異常何時觸發 145
9.5 FreeRTOS時間片調度實驗 146
9.5.1 功能設計 146
9.5.2 軟件設計 147
9.5.3 下載驗證 149
第10章FreeRTOS內核控制函數 150
10.1 FreeRTOS內核控制函數預覽150
10.2 FreeRTOS內核控制函數詳解151
第11章FreeRTOS其他任務API函數 156
11.1 FreeRTOS任務相關API函數 156
11.1.1 FreeRTOS任務相關API函數預覽 156
11.1.2 FreeRTOS任務相關API函數詳解 157
11.2 FreeRTOS任務狀態與信息查詢實驗166
11.2.1 功能設計166
11.2.2 軟件設計166
11.2.3 下載驗證170
11.3 FreeRTOS任務運行時間統計實驗172
11.3.1 功能設計172
11.3.2 軟件設計172
11.3.3 下載驗證176
第12章FreeRTOS時間管理 178
12.1 FreeRTOS系統時鐘節拍178
12.1.1 FreeRTOS系統時鐘節拍簡介178
12.1.2 FreeRTOS系統時鐘節拍來源178
12.1.3 FreeRTOS系統時鐘節拍處理180
12.2 FreeRTOS任務延時函數185
第13章FreeRTOS隊列 193
13.1 FreeRTOS隊列簡介193
13.2 FreeRTOS隊列相關API函數 196
13.2.1 隊列結構體196
13.2.2 創建隊列197
13.2.3 隊列寫入消息205
13.2.4 隊列讀取消息215
13.2.5 隊列鎖217
13.3 FreeRTOS隊列操作實驗220
13.3.1 功能設計220
13.3.2 軟件設計220
13.3.3 下載驗證223
13.4 FreeRTOS隊列集223
13.5 FreeRTOS隊列集相關API函數 224
13.6 FreeRTOS隊列集操作實驗228
13.6.1 功能設計228
13.6.2 軟件設計229
13.6.3 下載驗證232
13.7 FreeRTOS隊列集模擬事件標誌位實驗234
13.7.1 功能設計234
13.7.2 軟件設計234
13.7.3 下載驗證237
第14章FreeRTOS信號量 239
14.1 FreeRTOS信號量簡介239
14.2 FreeRTOS二值信號量240
14.2.1 FreeRTOS二值信號量簡介240
14.2.2 FreeRTOS二值信號量相關API函數 240
14.3 FreeRTOS二值信號量操作實驗249
14.3.1 功能設計249
14.3.2 軟件設計249
14.3.3 下載驗證252
14.4 FreeRTOS計數型信號量253
14.4.1 FreeRTOS計數型信號量簡介253
14.4.2 FreeRTOS計數型信號量相關API函數 253
14.5 FreeRTOS計數型信號量操作實驗255
14.5.1 功能設計255
14.5.2 軟件設計255
14.5.3 下載驗證258
14.6 優先級翻轉258
*          
14.7 優先級翻轉實驗260
14.7.1 功能設計260
14.7.2 軟件設計260
14.7.3 下載驗證263
14.8 FreeRTOS互斥信號量264
14.8.1 FreeRTOS互斥信號量簡介264
14.8.2 FreeRTOS互斥信號量相關API函數 264
14.9 FreeRTOS互斥信號量操作實驗266
14.9.1 功能設計266
14.9.2 軟件設計267
14.9.3 下載驗證269
14.10 FreeRTOS遞歸互斥信號量 270
14.10.1 FreeRTOS遞歸互斥信號量簡介 270
14.10.2 FreeRTOS遞歸互斥信號量相關API函數 271
14.10.3 FreeRTOS遞歸互斥信號量的使用示例 273
第15章FreeRTOS軟件定時器 275
15.1 FreeRTOS軟件定時器簡介275
15.1.1 FreeRTOS軟件定時器服務任務簡介276
15.1.2 軟件定時器命令隊列276
15.1.3 軟件定時器的狀態276
15.1.4 單次定時器和周期定時器277
15.1.5 軟件定時器的狀態轉換圖278
15.1.6 復位軟件定時器278
15.2 FreeRTOS軟件定時器相關配置279
15.3 FreeRTOS軟件定時器相關API函數 279
15.4 FreeRTOS軟件定時器實驗286
15.4.1 功能設計286
15.4.2 軟件設計286
15.4.3 下載驗證289
第16章FreeRTOS事件標誌組 291
16.1 FreeRTOS事件標誌組簡介291
16.2 FreeRTOS事件標誌組相關API函數 292
16.3 FreeRTOS事件標誌組實驗298
16.3.1 功能設計298
16.3.2 軟件設計298
16.3.3 下載驗證301
第17章FreeRTOS任務通知 303
17.1 FreeRTOS任務通知簡介303
17.1.1 任務通知的優勢304
17.1.2 任務通知的缺點304
17.2 FreeRTOS任務通知相關API函數 305
17.3 FreeRTOS任務通知模擬二值信號量實驗321
17.3.1 功能設計321
17.3.2 軟件設計321
17.3.3 下載驗證324
17.4 FreeRTOS任務通知模擬計數型信號量實驗324
17.4.1 功能設計324
17.4.2 軟件設計324
17.4.3 下載驗證327
17.5 FreeRTOS任務通知模擬消息郵箱實驗328
17.5.1 功能設計328
17.5.2 軟件設計328
17.5.3 下載驗證331
17.6 FreeRTOS任務通知模擬事件標誌組實驗332
17.6.1 功能設計332
17.6.2 軟件設計332
17.6.3 下載驗證335
第18章FreeRTOS低功耗Tickless模式 337
18.1 FreeRTOS低功耗Tickless模式簡介337
18.1.1 空閒任務中的低功耗Tickless處理 337
18.1.2 函數portSUPPRESS_TICKS_AND_SLEEP() 339
18.2 FreeRTOS低功耗Tickless模式相關配置項340
18.3 FreeRTOS低功耗Tickless實驗340
18.3.1 功能設計340
18.3.2 軟件設計341
18.3.3 下載驗證344
第19章FreeRTOS空閒任務 345
19.1 FreeRTOS空閒任務詳解345
19.1.1 FreeRTOS空閒任務簡介345
19.1.2 FreeRTOS空閒任務的創建345
19.1.3 FreeRTOS空閒任務的任務函數346
19.2 FreeRTOS空閒任務鉤子函數347
19.2.1 FreeRTOS中的鉤子函數347
19.2.2 FreeRTOS空閒任務鉤子函數347
19.3 FreeRTOS空閒任務鉤子函數實驗348
19.3.1 功能設計348
19.3.2 軟件設計348
19.3.3 下載驗證350
第20章FreeRTOS內存管理 352
20.1 FreeRTOS內存管理簡介352
20.2 FreeRTOS內存管理算法353
20.2.1 heap_1內存管理算法 353
20.2.2 heap_2內存管理算法 356
20.2.3 heap_3內存管理算法 363
20.2.4 heap_4內存管理算法 364
20.2.5 heap_5內存管理算法 374
20.3 FreeRTOS內存管理實驗378
20.3.1 功能設計378
20.3.2 軟件設計378
20.3.3 下載驗證381