FreeRTOS原理與應(yīng)用——基于GD32
定 價:58 元
- 作者:董磊
- 出版時間:2024/9/1
- ISBN:9787121489594
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP332.3
- 頁碼:256
- 紙張:
- 版次:01
- 開本:16開
本書采用GD32F303ZET6芯片的GD32F3蘋果派開發(fā)板,重點介紹FreeRTOS操作系統(tǒng)的原理與應(yīng)用開發(fā)。全書共19章,前兩章簡要介紹了嵌入式操作系統(tǒng)和GD32F3蘋果派開發(fā)板;第3~19章分別介紹基準(zhǔn)工程的創(chuàng)建、簡易操作系統(tǒng)的實現(xiàn),以及FreeRTOS的移植、任務(wù)管理、時間管理、消息隊列、二值信號量與計數(shù)信號量、互斥信號量、事件標(biāo)志組、任務(wù)通知、軟件定時器、內(nèi)存管理、中斷管理、CPU利用率、流緩沖區(qū)、消息緩沖區(qū)和協(xié)程。全書程序代碼的編寫均遵循統(tǒng)一規(guī)范,且各章的工程均采用模塊化設(shè)計,以便于將各模塊應(yīng)用在實際項目和產(chǎn)品中。本書配有豐富的資料包,涵蓋GD32F3蘋果派開發(fā)板原理圖、例程、軟件包、PPT等。資料包將持續(xù)更新,下載鏈接可通過微信公眾號“卓越工程師培養(yǎng)系列”獲取。本書既可以作為高等院校電子信息、自動化等專業(yè)微控制器相關(guān)課程的教材,也可以作為微控制器系統(tǒng)設(shè)計及相關(guān)行業(yè)工程技術(shù)人員的入門培訓(xùn)用書。
董磊,深圳大學(xué)高級實驗師,主要從事卓越工程師培養(yǎng)以及醫(yī)療器械研發(fā)工作。先后主持10余項醫(yī)療器械研發(fā)項目,主持3項教育部產(chǎn)學(xué)合作協(xié)同育人項目、4項實驗室與設(shè)備管理研究基金項目、6項自制實驗儀器設(shè)備基金項目,獲得專利授權(quán)25項、軟件著作權(quán)10余項,發(fā)表論文10余篇。
第1章 嵌入式操作系統(tǒng)簡介 1
1.1 裸機(jī)系統(tǒng)與嵌入式操作系統(tǒng) 1
1.1.1 簡單裸機(jī)系統(tǒng) 1
1.1.2 基于定時器計時的裸機(jī)系統(tǒng) 2
1.1.3 嵌入式操作系統(tǒng) 2
1.2 操作系統(tǒng)的分類 3
1.2.1 分時操作系統(tǒng) 3
1.2.2 實時操作系統(tǒng) 3
1.3 FreeRTOS簡介 4
1.3.1 為什么選擇FreeRTOS 4
1.3.2 FreeRTOS的特點 4
1.3.3 商業(yè)許可 5
1.3.4 如何獲取相關(guān)資料 5
本章任務(wù) 5
本章習(xí)題 5
第2章 GD32F3蘋果派開發(fā)板簡介 6
2.1 為什么選擇GD32 6
2.2 GD32F3系列微控制器簡介 6
2.3 GD32F3蘋果派開發(fā)板電路簡介 8
2.4 基于FreeRTOS的應(yīng)用實例 11
2.5 本書配套資料包 11
2.6 GD32微控制器開發(fā)工具安裝與
配置 12
2.6.1 安裝Keil μVision5 12
2.6.2 設(shè)置Keil μVision5 14
2.6.3 安裝CH340驅(qū)動 16
本章任務(wù) 16
本章習(xí)題 17
第3章 基準(zhǔn)工程 18
3.1 GD32F30x系列微控制器的系統(tǒng)架
構(gòu)與存儲器映射 18
3.1.1 系統(tǒng)架構(gòu) 18
3.1.2 存儲器映射 19
3.2 GD32工程模塊名稱及說明 22
3.3 Keil編輯和編譯及程序下載過程 22
3.3.1 Keil編輯和編譯過程 23
3.3.2 程序下載過程 23
3.4 相關(guān)參考資料 23
3.5 代碼框架 24
3.6 實例與代碼解析 25
3.6.1 新建存放工程的文件夾 25
3.6.2 復(fù)制并編譯原始工程 25
3.6.3 LED文件對介紹 25
3.6.4 KeyOne文件對介紹 27
3.6.5 Delay文件對介紹 30
3.6.6 RCU文件對介紹 31
3.6.7 Timer文件對介紹 33
3.6.8 Main.c文件介紹 37
3.6.9 程序下載 39
3.6.10 運(yùn)行結(jié)果 44
本章任務(wù) 44
本章習(xí)題 44
第4章 簡易操作系統(tǒng) 45
4.1 裸機(jī)系統(tǒng)與操作系統(tǒng)的區(qū)別 45
4.2 任務(wù)切換基本原理 45
4.3 CPU工作寄存器和棧區(qū) 45
4.4 中斷與異常 48
4.4.1 Cortex-M3/M4的中斷與異常 48
4.4.2 中斷/異常返回 50
4.4.3 SCV與PendSV異常 52
4.5 任務(wù)的特性 52
4.5.1 任務(wù)優(yōu)先級 52
4.5.2 任務(wù)狀態(tài) 52
4.5.3 不可剝奪內(nèi)核和可剝奪內(nèi)核 52
4.5.4 空閑任務(wù) 54
4.6 實例與代碼解析 54
4.6.1 復(fù)制并編譯原始工程 54
4.6.2 添加EasyOS文件對 55
4.6.3 完善EasyOS.h文件 55
4.6.4 完善EasyOS.c文件 56
4.6.5 完善Main.c文件 64
4.6.6 編譯及下載驗證 66
本章任務(wù) 67
本章習(xí)題 67
第5章 FreeRTOS的移植 68
5.1 FreeRTOS源碼的獲取 68
5.2 FreeRTOS源碼文件簡介 68
5.3 FreeRTOS配置宏定義簡介 69
5.4 實例與代碼解析 70
5.4.1 復(fù)制并編譯原始工程 70
5.4.2 移植 71
5.4.3 完善Main.c文件 72
5.4.4 下載驗證 75
本章任務(wù) 76
本章習(xí)題 76
第6章 任務(wù)管理 77
6.1 任務(wù)簡介 77
6.1.1 任務(wù)函數(shù) 77
6.1.2 任務(wù)狀態(tài) 78
6.1.3 任務(wù)優(yōu)先級 78
6.1.4 任務(wù)句柄 79
6.1.5 任務(wù)棧 79
6.1.6 任務(wù)管理相關(guān)API函數(shù) 79
6.2 任務(wù)控制塊(TCB) 83
6.3 列表和列表項 83
6.4 棧幀初始化 85
6.5 SVC異常處理 86
6.6 PendSV異常處理 87
6.7 實例與代碼解析 89
6.7.1 復(fù)制并編譯原始工程 89
6.7.2 編寫測試程序 89
6.7.3 編譯及下載驗證 90
本章任務(wù) 91
本章習(xí)題 91
第7章 時間管理 92
7.1 相對延時 92
7.2 絕對延時 92
7.3 時間管理相關(guān)API函數(shù) 92
7.4 實例與代碼解析 93
7.4.1 復(fù)制并編譯原始工程 93
7.4.2 編寫測試程序 93
7.4.3 編譯及下載驗證 95
本章任務(wù) 95
本章習(xí)題 95
第8章 消息隊列 96
8.1 隊列與循環(huán)隊列 96
8.2 數(shù)據(jù)存儲 97
8.3 多任務(wù)訪問 97
8.4 出隊阻塞 97
8.5 入隊阻塞 97
8.6 消息隊列集 98
8.7 消息隊列相關(guān)API函數(shù) 98
8.8 消息隊列集相關(guān)API函數(shù) 103
8.9 實例與代碼解析 107
8.9.1 復(fù)制并編譯原始工程 107
8.9.2 編寫測試程序 108
8.9.3 編譯及下載驗證 110
本章任務(wù) 111
本章習(xí)題 111
第9章 二值信號量與計數(shù)信號量 112
9.1 中斷延遲 112
9.2 二值信號量 113
9.3 計數(shù)信號量 115
9.4 相關(guān)API函數(shù) 116
9.5 實例與代碼解析 123
9.5.1 復(fù)制并編譯原始工程 123
9.5.2 編寫測試程序 123
9.5.3 編譯及下載驗證 124
本章任務(wù) 125
本章習(xí)題 125
第10章 互斥信號量 126
10.1 共享資源與互斥訪問 126
10.1.1 共享資源 126
10.1.2 通過臨界段實現(xiàn)資源管理 128
10.1.3 通過調(diào)度器實現(xiàn)資源管理 130
10.1.4 通過互斥信號量實現(xiàn)資源
管理 132
10.2 優(yōu)先級翻轉(zhuǎn)與繼承 133
10.2.1 優(yōu)先級翻轉(zhuǎn) 133
10.2.2 優(yōu)先級繼承 133
10.3 遞歸互斥信號量 134
10.4 死鎖 134
10.5 互斥信號量與調(diào)度器 134
10.6 守護(hù)任務(wù) 137
10.7 互斥信號量相關(guān)API函數(shù) 138
10.8 實例與代碼解析 140
10.8.1 復(fù)制并編譯原始工程 140
10.8.2 編寫測試程序 140
10.8.3 編譯及下載驗證 142
本章任務(wù) 143
本章習(xí)題 143
第11章 事件標(biāo)志組 144
11.1 事件標(biāo)志組特性 144
11.2 事件標(biāo)志組原理 144
11.3 事件標(biāo)志組相關(guān)API函數(shù) 145
11.4 實例與代碼解析 155
11.4.1 復(fù)制并編譯原始工程 155
11.4.2 編寫測試程序 155
11.4.3 編譯及下載驗證 157
本章任務(wù) 158
本章習(xí)題 158
第12章 任務(wù)通知 159
12.1 任務(wù)通知原理 159
12.2 任務(wù)通知相關(guān)API函數(shù) 160
12.3 任務(wù)通知的應(yīng)用 166
12.4 實例與代碼解析 170
12.4.1 復(fù)制并編譯原始工程 170
12.4.2 編寫測試程序 170
12.4.3 編譯及下載驗證 171
本章任務(wù) 171
本章習(xí)題 171
第13章 軟件定時器 172
13.1 軟件定時器簡介 172
13.1.1 軟件定時器的回調(diào)函數(shù) 172
13.1.2 軟件定時器的模式 172
13.1.3 軟件定時器的狀態(tài) 173
13.2 軟件定時器服務(wù) 174
13.2.1 軟件定時器的命令隊列 174
13.2.2 軟件定時器服務(wù)調(diào)度 174
13.3 軟件定時器ID 176
13.4 復(fù)位軟件定時器 176
13.5 軟件定時器相關(guān)API函數(shù) 176
13.6 實例與代碼解析 186
13.6.1 復(fù)制并編譯原始工程 186
13.6.2 編寫測試程序 186
13.6.3 編譯及下載驗證 188
本章任務(wù) 188
本章習(xí)題 188
第14章 內(nèi)存管理 189
14.1 內(nèi)存管理簡介 189
14.2 內(nèi)存管理的應(yīng)用場景 190
14.3 內(nèi)存碎片 190
14.4 FreeRTOS內(nèi)存管理機(jī)制 191
14.5 內(nèi)存管理相關(guān)API函數(shù) 192
14.6 實例與代碼解析 193
14.6.1 復(fù)制并編譯原始工程 193
14.6.2 編寫測試程序 194
14.6.3 編譯及下載驗證 194
本章任務(wù) 195
本章習(xí)題 195
第15章 中斷管理 196
15.1 中斷簡介 196
15.2 中斷優(yōu)先級 197
15.3 用于屏蔽中斷的特殊寄存器 197
15.4 FreeRTOS中斷宏 199
15.5 中斷開關(guān) 200
15.6 臨界段代碼 201
15.7 實例與代碼解析 202
15.7.1 復(fù)制并編譯原始工程 202
15.7.2 完善Timer.c文件 202
15.7.3 編寫測試程序 204
15.7.4 編譯及下載驗證 205
本章任務(wù) 206
本章習(xí)題 206
第16章 CPU利用率 207
16.1 CPU利用率簡介 207
16.2 CPU利用率統(tǒng)計 207
16.3 CPU利用率相關(guān)API函數(shù) 207
16.4 實例與代碼解析 208
16.4.1 復(fù)制并編譯原始工程 208
16.4.2 完善FreeRTOSConfig.h文件 208
16.4.3 完善Timer文件對 209
16.4.4 編寫測試程序 210
16.4.5 編譯及下載驗證 211
本章任務(wù) 211
本章習(xí)題 212
第17章 流緩沖區(qū) 213
17.1 流緩沖區(qū)簡介 213
17.2 流緩沖區(qū)相關(guān)API函數(shù) 213
17.3 實例與代碼解析 219
17.3.1 復(fù)制并編譯原始工程 219
17.3.2 完善UART0.c文件 219
17.3.3 編寫測試程序 220
17.3.4 編譯及下載驗證 221
本章任務(wù) 221
本章習(xí)題 221
第18章 消息緩沖區(qū) 222
18.1 消息緩沖區(qū)簡介 222
18.2 消息緩沖區(qū)相關(guān)API函數(shù) 222
18.3 實例與代碼解析 227
18.3.1 復(fù)制并編譯原始工程 227
18.3.2 編寫測試程序 228
18.3.3 編譯及下載驗證 229
本章任務(wù) 229
本章習(xí)題 229
第19章 協(xié)程 230
19.1 協(xié)程的基本原理 230
19.2 FreeRTOS協(xié)程 231
19.2.1 FreeRTOS中協(xié)程的狀態(tài) 231
19.2.2 FreeRTOS中協(xié)程的優(yōu)先級 231
19.2.3 FreeRTOS中的協(xié)程函數(shù) 232
19.2.4 FreeRTOS中協(xié)程的調(diào)度 233
19.2.5 FreeRTOS協(xié)程的使用限制 234
19.3 協(xié)程相關(guān)API函數(shù) 235
19.4 實例與代碼解析 242
19.4.1 復(fù)制并編譯原始工程 242
19.4.2 完善FreeRTOSConfig.h文件 242
19.4.3 編寫測試程序 243
19.4.4 編譯及下載驗證 244
本章任務(wù) 245
本章習(xí)題 245
參考文獻(xiàn) 246