物聯(lián)網(wǎng)操作系統(tǒng)LiteOS內(nèi)核開(kāi)發(fā)與實(shí)踐
定 價(jià):49.8 元
- 作者:劉旭明 劉火良 李雪峰
- 出版時(shí)間:2020/7/1
- ISBN:9787115529091
- 出 版 社:人民郵電出版社
- 中圖法分類(lèi):TP316
- 頁(yè)碼:280
- 紙張:
- 版次:01
- 開(kāi)本:16K
本書(shū)較為全面地介紹了華為物聯(lián)網(wǎng)操作系統(tǒng)LiteOS內(nèi)核相關(guān)知識(shí)。全書(shū)共12章,介紹了LiteOS的移植與內(nèi)核資源的應(yīng)用,如創(chuàng)建任務(wù)、任務(wù)管理、消息隊(duì)列、信號(hào)量、互斥鎖、事件、軟件定時(shí)器、內(nèi)存管理、中斷管理及鏈表等操作,深入講解了內(nèi)核資源的概念、運(yùn)行機(jī)制、應(yīng)用場(chǎng)景及源碼。本書(shū)提供了大量實(shí)驗(yàn),通過(guò)練習(xí)和操作實(shí)踐,讀者可鞏固所學(xué)的內(nèi)容。
本書(shū)可以作為高校物聯(lián)網(wǎng)、嵌入式等相關(guān)專(zhuān)業(yè)的教材,也可以作為物聯(lián)網(wǎng)、嵌入式培訓(xùn)班的教材,還適合物聯(lián)網(wǎng)開(kāi)發(fā)人員、從事物聯(lián)網(wǎng)技術(shù)支持的專(zhuān)業(yè)人員和廣大嵌入式愛(ài)好者自學(xué)使用。
1.理實(shí)一體、產(chǎn)教融合。由華為提供行業(yè)實(shí)際案例和實(shí)訓(xùn)項(xiàng)目,教師根據(jù)院校的實(shí)際教學(xué)情況安排知識(shí)內(nèi)容。
2.課證融通,對(duì)接崗位。和華為認(rèn)證緊密結(jié)合,做到大綱內(nèi)容全覆蓋,并提供部分真題訓(xùn)練,解決學(xué)生“不知道認(rèn)證”“對(duì)通過(guò)認(rèn)證沒(méi)有信心”的兩大難題。
3.資源豐富,易教利學(xué)。華為協(xié)助建設(shè)教學(xué)資源,幫助學(xué)校更好地進(jìn)行課程建設(shè)。
劉火良,野火電子創(chuàng)始人,系統(tǒng)工程師,近十年來(lái)一直從事嵌入式系統(tǒng)的軟硬件開(kāi)發(fā)工作,出版著作有《STM32庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南-基于STM32F103(第2版)》,《STM32庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南-基于STM32F4》,《freeRTOS內(nèi)核實(shí)現(xiàn)與應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)指南》,《ucosiii內(nèi)核實(shí)現(xiàn)與應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)指南》《RT-Thread內(nèi)核實(shí)現(xiàn)與應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)指南》,《Lwip應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)指南》。
第 1章 初識(shí)LiteOS 1
1.1 LiteOS概述 1
1.2 學(xué)習(xí)LiteOS 2
第 2章 移植LiteOS到STM32 4
2.1 移植前的準(zhǔn)備工作 4
2.1.1 獲取STM32的裸機(jī)工程模板 4
2.1.2 下載LiteOS源碼 4
2.1.3 LiteOS源碼核心文件夾分析 5
2.2 向裸機(jī)工程中添加LiteOS源碼 6
2.2.1 復(fù)制LiteOS文件夾到裸機(jī)工程根目錄中 6
2.2.2 將OS_CONFIG文件夾中配置文件復(fù)制到LiteOS文件夾中 7
2.2.3 復(fù)制Include文件夾到CMSIS文件夾中 7
2.2.4 LiteOS文件夾內(nèi)容介紹 7
2.2.5 添加LiteOS核心源碼到工程組文件夾中 9
2.3 接管中斷版本修改target_config.h 11
2.3.1 target_config.h文件內(nèi)容講解 11
2.3.2 target_config.h文件修改 22
2.4 非接管中斷版本修改target_config.h 29
2.4.1 target_config.h文件內(nèi)容 29
2.4.2 target_config.h文件修改 32
2.5 修改相關(guān)文件 34
2.5.1 啟動(dòng)文件內(nèi)容修改 34
2.5.2 分散加載文件修改 36
2.5.3 修改中斷相關(guān)文件 38
2.5.4 修改core_cm3.h文件 39
2.6 修改工程配置 39
2.7 修改main.c 40
2.8 下載驗(yàn)證 41
第3章 創(chuàng)建任務(wù) 42
3.1 硬件初始化 42
3.2 創(chuàng)建單任務(wù) 43
3.2.1 動(dòng)態(tài)內(nèi)存空間的堆 43
3.2.2 LiteOS核心初始化 44
3.2.3 定義任務(wù)函數(shù) 45
3.2.4 定義任務(wù)ID變量 46
3.2.5 任務(wù)控制塊 46
3.2.6 創(chuàng)建具體任務(wù) 47
3.3 main.c文件內(nèi)容全貌 48
3.4 創(chuàng)建多任務(wù) 51
3.5 LiteOS的啟動(dòng)流程 56
3.5.1 第 一種啟動(dòng)方式 56
3.5.2 第二種啟動(dòng)方式 57
3.5.3 LiteOS的啟動(dòng)流程 59
第4章 任務(wù)管理 66
4.1 基本概念 66
4.1.1 任務(wù)的基本概念 66
4.1.2 調(diào)度器的基本概念 67
4.1.3 任務(wù)狀態(tài)的基本概念 67
4.1.4 任務(wù)狀態(tài)遷移 67
4.2 常用的任務(wù)函數(shù) 68
4.2.1 任務(wù)創(chuàng)建函數(shù)LOS_TaskCreate 68
4.2.2 任務(wù)刪除函數(shù)LOS_TaskDelete 70
4.2.3 任務(wù)延時(shí)函數(shù)LOS_TaskDelay 72
4.2.4 任務(wù)掛起函數(shù)LOS_TaskSuspend 73
4.2.5 任務(wù)恢復(fù)函數(shù)LOS_TaskResume 74
4.3 常用Task錯(cuò)誤代碼說(shuō)明 75
4.4 常用任務(wù)函數(shù)的使用方法 76
4.4.1 任務(wù)創(chuàng)建函數(shù)LOS_TaskCreate 76
4.4.2 任務(wù)刪除函數(shù)LOS_TaskDelete 77
4.4.3 任務(wù)延時(shí)函數(shù)LOS_TaskDelay 78
4.4.4 任務(wù)掛起與恢復(fù)函數(shù) 78
4.5 任務(wù)的設(shè)計(jì)要點(diǎn) 79
4.6 任務(wù)管理實(shí)驗(yàn) 80
4.7 實(shí)驗(yàn)現(xiàn)象 85
第5章 消息隊(duì)列 86
5.1 消息隊(duì)列的基本概念 86
5.2 消息隊(duì)列的運(yùn)行機(jī)制 87
5.3 消息隊(duì)列的傳輸機(jī)制 88
5.4 消息隊(duì)列的阻塞機(jī)制 88
5.4.1 出隊(duì)阻塞 89
5.4.2 入隊(duì)阻塞 89
5.5 常見(jiàn)隊(duì)列錯(cuò)誤代碼說(shuō)明 89
5.6 常用消息隊(duì)列的函數(shù) 91
5.6.1 消息隊(duì)列創(chuàng)建函數(shù)LOS_QueueCreate 91
5.6.2 消息隊(duì)列刪除函數(shù)LOS_QueueDelete 94
5.6.3 消息隊(duì)列寫(xiě)消息函數(shù) 96
5.6.4 通用的消息隊(duì)列處理函數(shù) 100
5.6.5 消息隊(duì)列讀消息函數(shù) 103
5.7 消息隊(duì)列實(shí)驗(yàn) 107
5.8 實(shí)驗(yàn)現(xiàn)象 112
第6章 信號(hào)量 114
6.1 信號(hào)量的基本概念 114
6.1.1 二值信號(hào)量 115
6.1.2 計(jì)數(shù)信號(hào)量 115
6.2 二值信號(hào)量的運(yùn)行機(jī)制 116
6.3 二值信號(hào)量的應(yīng)用場(chǎng)景 116
6.4 計(jì)數(shù)信號(hào)量的運(yùn)行機(jī)制 117
6.5 信號(hào)量的使用 117
6.5.1 信號(hào)量控制塊 117
6.5.2 常見(jiàn)信號(hào)量錯(cuò)誤代碼 118
6.5.3 二值信號(hào)量創(chuàng)建函數(shù)LOS_BinarySemCreate 118
6.5.4 計(jì)數(shù)信號(hào)量創(chuàng)建函數(shù)LOS_SemCreate 120
6.5.5 信號(hào)量刪除函數(shù)LOS_SemDelete 121
6.5.6 信號(hào)量釋放函數(shù)LOS_SemPost 122
6.5.7 信號(hào)量獲取函數(shù)LOS_SemPend 124
6.6 二值信號(hào)量同步實(shí)驗(yàn) 126
6.7 二值信號(hào)量同步實(shí)驗(yàn)現(xiàn)象 131
6.8 計(jì)數(shù)信號(hào)量實(shí)驗(yàn) 132
6.9 計(jì)數(shù)信號(hào)量實(shí)驗(yàn)現(xiàn)象 137
第7章 互斥鎖 139
7.1 互斥鎖的基本概念 139
7.2 互斥鎖的優(yōu)先級(jí)繼承機(jī)制 140
7.3 互斥鎖的運(yùn)行機(jī)制 142
7.4 互斥鎖的應(yīng)用場(chǎng)景 142
7.5 互斥鎖的使用 143
7.5.1 互斥鎖控制塊 143
7.5.2 互斥鎖錯(cuò)誤代碼 143
7.5.3 互斥鎖創(chuàng)建函數(shù)LOS_MuxCreate 144
7.5.4 互斥鎖刪除函數(shù)LOS_MuxDelete 145
7.5.5 互斥鎖釋放函數(shù)LOS_MuxPost 147
7.5.6 互斥鎖獲取函數(shù)LOS_MuxPend 149
7.5.7 使用互斥鎖的注意事項(xiàng) 151
7.6 互斥鎖實(shí)驗(yàn) 151
7.6.1 模擬優(yōu)先級(jí)翻轉(zhuǎn)實(shí)驗(yàn) 152
7.6.2 互斥鎖實(shí)驗(yàn) 158
7.7 實(shí)驗(yàn)現(xiàn)象 164
7.7.1 模擬優(yōu)先級(jí)翻轉(zhuǎn)實(shí)驗(yàn)現(xiàn)象 164
7.7.2 互斥鎖實(shí)驗(yàn)現(xiàn)象 165
第8章 事件 166
8.1 事件的基本概念 166
8.2 事件的運(yùn)行機(jī)制 167
8.3 事件的應(yīng)用場(chǎng)景 168
8.4 事件的使用 169
8.4.1 事件控制塊 169
8.4.2 常見(jiàn)事件錯(cuò)誤代碼 169
8.4.3 事件初始化函數(shù)LOS_EventInit 169
8.4.4 事件銷(xiāo)毀函數(shù)LOS_EventDestory 170
8.4.5 寫(xiě)指定事件函數(shù)LOS_EventWrite 170
8.4.6 讀指定事件函數(shù)LOS_EventRead 172
8.4.7 清除指定事件函數(shù)LOS_EventClear 175
8.5 事件標(biāo)志組實(shí)驗(yàn) 176
8.6 實(shí)驗(yàn)現(xiàn)象 182
第9章 軟件定時(shí)器 183
9.1 軟件定時(shí)器簡(jiǎn)介 183
9.1.1 軟件定時(shí)器的基本概念 183
9.1.2 軟件定時(shí)器的運(yùn)行機(jī)制 184
9.1.3 軟件定時(shí)器的精度 185
9.1.4 軟件定時(shí)器的應(yīng)用場(chǎng)景 185
9.2 軟件定時(shí)器的函數(shù) 185
9.2.1 軟件定時(shí)器控制塊 186
9.2.2 軟件定時(shí)器錯(cuò)誤代碼 186
9.2.3 軟件定時(shí)器開(kāi)發(fā)典型流程 187
9.2.4 軟件定時(shí)器創(chuàng)建函數(shù)LOS_SwtmrCreate 187
9.2.5 軟件定時(shí)器刪除函數(shù)LOS_SwtmrDelete 190
9.2.6 軟件定時(shí)器啟動(dòng)函數(shù)LOS_SwtmrStart 192
9.2.7 軟件定時(shí)器停止函數(shù)LOS_SwtmrStop 196
9.3 軟件定時(shí)器實(shí)驗(yàn) 198
9.4 實(shí)驗(yàn)現(xiàn)象 202
第 10章 內(nèi)存管理 204
10.1 內(nèi)存管理的基本概念 204
10.2 內(nèi)存管理的運(yùn)行機(jī)制 205
10.3 內(nèi)存管理的應(yīng)用場(chǎng)景 207
10.4 靜態(tài)內(nèi)存池的使用 208
10.4.1 靜態(tài)內(nèi)存池控制塊 208
10.4.2 靜態(tài)內(nèi)存池初始化函數(shù)LOS_MemboxInit 208
10.4.3 靜態(tài)內(nèi)存池分配函數(shù)LOS_MemboxAlloc 210
10.4.4 靜態(tài)內(nèi)存池釋放函數(shù)LOS_MemboxFree 212
10.4.5 靜態(tài)內(nèi)存池內(nèi)容清除函數(shù)LOS_MemboxClr 213
10.5 動(dòng)態(tài)內(nèi)存的使用 213
10.5.1 動(dòng)態(tài)內(nèi)存初始化函數(shù)LOS_MemInit 214
10.5.2 動(dòng)態(tài)內(nèi)存分配函數(shù)LOS_MemAlloc 217
10.5.3 動(dòng)態(tài)內(nèi)存釋放函數(shù)LOS_MemFree 220
10.6 內(nèi)存管理實(shí)驗(yàn) 223
10.6.1 靜態(tài)內(nèi)存池管理實(shí)驗(yàn) 223
10.6.2 動(dòng)態(tài)內(nèi)存管理實(shí)驗(yàn) 229
10.7 實(shí)驗(yàn)現(xiàn)象 235
10.7.1 靜態(tài)內(nèi)存池管理實(shí)驗(yàn)現(xiàn)象 235
10.7.2 動(dòng)態(tài)內(nèi)存管理實(shí)驗(yàn)現(xiàn)象 236
第 11章 中斷管理 237
11.1 中斷簡(jiǎn)介 237
11.1.1 異常 237
11.1.2 中斷 238
11.2 中斷的運(yùn)行機(jī)制 239
11.3 中斷的應(yīng)用場(chǎng)景 240
11.4 中斷延遲的基本概念 240
11.5 中斷的使用 241
11.5.1 接管中斷版本的移植 241
11.5.2 接管中斷版本的常用函數(shù) 241
11.5.3 非接管中斷 245
11.6 中斷管理實(shí)驗(yàn) 246
11.6.1 接管中斷方式 246
11.6.2 非接管中斷方式 251
11.7 實(shí)驗(yàn)現(xiàn)象 256
第 12章 鏈表 257
12.1 C語(yǔ)言中的鏈表 257
12.2 鏈表的使用 258
12.2.1 鏈表初始化函數(shù)LOS_ListInit 258
12.2.2 向鏈表中添加節(jié)點(diǎn)函數(shù)LOS_ListAdd 259
12.2.3 從鏈表中刪除節(jié)點(diǎn)函數(shù)LOS_ListDelete 260
12.3 雙向鏈表實(shí)驗(yàn) 261
12.4 實(shí)驗(yàn)現(xiàn)象 264