物聯網作業系統LiteOS核心開發與實踐

物聯網作業系統LiteOS核心開發與實踐

《物聯網作業系統LiteOS核心開發與實踐》是2020年人民郵電出版社出版的圖書,作者是劉旭明、劉火良、李雪峰。

基本介紹

  • 中文名:物聯網作業系統LiteOS核心開發與實踐
  • 作者:劉旭明、劉火良、李雪峰
  • 出版社:人民郵電出版社
  • ISBN:9787115529091
內容簡介,圖書目錄,作者簡介,

內容簡介

本書較為全面地介紹了華為物聯網作業系統LiteOS核心相關知識。全書共12章,介紹了LiteOS的移植與核心資源的套用,如創建任務、任務管理、訊息佇列、信號量、互斥鎖、事件、軟體定時器、記憶體管理、中斷管理及鍊表等操作,深入講解了核心資源的概念、運行機制、套用場景及源碼。本書提供了大量實驗,通過練習和操作實踐,讀者可鞏固所學的內容。
本書可以作為高校物聯網、嵌入式等相關專業的教材,也可以作為物聯網、嵌入式培訓班的教材,還適合物聯網開發人員、從事物聯網技術支持的專業人員和廣大嵌入式愛好者自學使用。

圖書目錄

第 1章 初識LiteOS 1
1.1 LiteOS概述 1
1.2 學習LiteOS 2
第 2章 移植LiteOS到STM32 4
2.1 移植前的準備工作 4
2.1.1 獲取STM32的裸機工程模板 4
2.1.2 下載LiteOS源碼 4
2.1.3 LiteOS源碼核心資料夾分析 5
2.2 向裸機工程中添加LiteOS源碼 6
2.2.1 複製LiteOS資料夾到裸機工程根目錄中 6
2.2.2 將OS_CONFIG資料夾中配置檔案複製到LiteOS資料夾中 7
2.2.3 複製Include資料夾到CMSIS資料夾中 7
2.2.4 LiteOS資料夾內容介紹 7
2.2.5 添加LiteOS核心源碼到工程組資料夾中 9
2.3 接管中斷版本修改target_config.h 11
2.3.1 target_config.h檔案內容講解 11
2.3.2 target_config.h檔案修改 22
2.4 非接管中斷版本修改target_config.h 29
2.4.1 target_config.h檔案內容 29
2.4.2 target_config.h檔案修改 32
2.5 修改相關檔案 34
2.5.1 啟動檔案內容修改 34
2.5.2 分散載入檔案修改 36
2.5.3 修改中斷相關檔案 38
2.5.4 修改core_cm3.h檔案 39
2.6 修改工程配置 39
2.7 修改main.c 40
2.8 下載驗證 41
第3章 創建任務 42
3.1 硬體初始化 42
3.2 創建單任務 43
3.2.1 動態記憶體空間的堆 43
3.2.2 LiteOS核心初始化 44
3.2.3 定義任務函式 45
3.2.4 定義任務ID變數 46
3.2.5 任務控制塊 46
3.2.6 創建具體任務 47
3.3 main.c檔案內容全貌 48
3.4 創建多任務 51
3.5 LiteOS的啟動流程 56
3.5.1 第 一種啟動方式 56
3.5.2 第二種啟動方式 57
3.5.3 LiteOS的啟動流程 59
第4章 任務管理 66
4.1 基本概念 66
4.1.1 任務的基本概念 66
4.1.2 調度器的基本概念 67
4.1.3 任務狀態的基本概念 67
4.1.4 任務狀態遷移 67
4.2 常用的任務函式 68
4.2.1 任務創建函式LOS_TaskCreate 68
4.2.2 任務刪除函式LOS_TaskDelete 70
4.2.3 任務延時函式LOS_TaskDelay 72
4.2.4 任務掛起函式LOS_TaskSuspend 73
4.2.5 任務恢複函數LOS_TaskResume 74
4.3 常用Task錯誤代碼說明 75
4.4 常用任務函式的使用方法 76
4.4.1 任務創建函式LOS_TaskCreate 76
4.4.2 任務刪除函式LOS_TaskDelete 77
4.4.3 任務延時函式LOS_TaskDelay 78
4.4.4 任務掛起與恢複函數 78
4.5 任務的設計要點 79
4.6 任務管理實驗 80
4.7 實驗現象 85
第5章 訊息佇列 86
5.1 訊息佇列的基本概念 86
5.2 訊息佇列的運行機制 87
5.3 訊息佇列的傳輸機制 88
5.4 訊息佇列的阻塞機制 88
5.4.1 出隊阻塞 89
5.4.2 入隊阻塞 89
5.5 常見佇列錯誤代碼說明 89
5.6 常用訊息佇列的函式 91
5.6.1 訊息佇列創建函式LOS_QueueCreate 91
5.6.2 訊息佇列刪除函式LOS_QueueDelete 94
5.6.3 訊息佇列寫訊息函式 96
5.6.4 通用的訊息佇列處理函式 100
5.6.5 訊息佇列讀訊息函式 103
5.7 訊息佇列實驗 107
5.8 實驗現象 112
第6章 信號量 114
6.1 信號量的基本概念 114
6.1.1 二值信號量 115
6.1.2 計數信號量 115
6.2 二值信號量的運行機制 116
6.3 二值信號量的套用場景 116
6.4 計數信號量的運行機制 117
6.5 信號量的使用 117
6.5.1 信號量控制塊 117
6.5.2 常見信號量錯誤代碼 118
6.5.3 二值信號量創建函式LOS_BinarySemCreate 118
6.5.4 計數信號量創建函式LOS_SemCreate 120
6.5.5 信號量刪除函式LOS_SemDelete 121
6.5.6 信號量釋放函式LOS_SemPost 122
6.5.7 信號量獲取函式LOS_SemPend 124
6.6 二值信號量同步實驗 126
6.7 二值信號量同步實驗現象 131
6.8 計數信號量實驗 132
6.9 計數信號量實驗現象 137
第7章 互斥鎖 139
7.1 互斥鎖的基本概念 139
7.2 互斥鎖的優先權繼承機制 140
7.3 互斥鎖的運行機制 142
7.4 互斥鎖的套用場景 142
7.5 互斥鎖的使用 143
7.5.1 互斥鎖控制塊 143
7.5.2 互斥鎖錯誤代碼 143
7.5.3 互斥鎖創建函式LOS_MuxCreate 144
7.5.4 互斥鎖刪除函式LOS_MuxDelete 145
7.5.5 互斥鎖釋放函式LOS_MuxPost 147
7.5.6 互斥鎖獲取函式LOS_MuxPend 149
7.5.7 使用互斥鎖的注意事項 151
7.6 互斥鎖實驗 151
7.6.1 模擬優先權翻轉實驗 152
7.6.2 互斥鎖實驗 158
7.7 實驗現象 164
7.7.1 模擬優先權翻轉實驗現象 164
7.7.2 互斥鎖實驗現象 165
第8章 事件 166
8.1 事件的基本概念 166
8.2 事件的運行機制 167
8.3 事件的套用場景 168
8.4 事件的使用 169
8.4.1 事件控制塊 169
8.4.2 常見事件錯誤代碼 169
8.4.3 事件初始化函式LOS_EventInit 169
8.4.4 事件銷毀函式LOS_EventDestory 170
8.4.5 寫指定事件函式LOS_EventWrite 170
8.4.6 讀指定事件函式LOS_EventRead 172
8.4.7 清除指定事件函式LOS_EventClear 175
8.5 事件標誌組實驗 176
8.6 實驗現象 182
第9章 軟體定時器 183
9.1 軟體定時器簡介 183
9.1.1 軟體定時器的基本概念 183
9.1.2 軟體定時器的運行機制 184
9.1.3 軟體定時器的精度 185
9.1.4 軟體定時器的套用場景 185
9.2 軟體定時器的函式 185
9.2.1 軟體定時器控制塊 186
9.2.2 軟體定時器錯誤代碼 186
9.2.3 軟體定時器開發典型流程 187
9.2.4 軟體定時器創建函式LOS_SwtmrCreate 187
9.2.5 軟體定時器刪除函式LOS_SwtmrDelete 190
9.2.6 軟體定時器啟動函式LOS_SwtmrStart 192
9.2.7 軟體定時器停止函式LOS_SwtmrStop 196
9.3 軟體定時器實驗 198
9.4 實驗現象 202
第 10章 記憶體管理 204
10.1 記憶體管理的基本概念 204
10.2 記憶體管理的運行機制 205
10.3 記憶體管理的套用場景 207
10.4 靜態記憶體池的使用 208
10.4.1 靜態記憶體池控制塊 208
10.4.2 靜態記憶體池初始化函式LOS_MemboxInit 208
10.4.3 靜態記憶體池分配函式LOS_MemboxAlloc 210
10.4.4 靜態記憶體池釋放函式LOS_MemboxFree 212
10.4.5 靜態記憶體池內容清除函式LOS_MemboxClr 213
10.5 動態記憶體的使用 213
10.5.1 動態記憶體初始化函式LOS_MemInit 214
10.5.2 動態記憶體分配函式LOS_MemAlloc 217
10.5.3 動態記憶體釋放函式LOS_MemFree 220
10.6 記憶體管理實驗 223
10.6.1 靜態記憶體池管理實驗 223
10.6.2 動態記憶體管理實驗 229
10.7 實驗現象 235
10.7.1 靜態記憶體池管理實驗現象 235
10.7.2 動態記憶體管理實驗現象 236
第 11章 中斷管理 237
11.1 中斷簡介 237
11.1.1 異常 237
11.1.2 中斷 238
11.2 中斷的運行機制 239
11.3 中斷的套用場景 240
11.4 中斷延遲的基本概念 240
11.5 中斷的使用 241
11.5.1 接管中斷版本的移植 241
11.5.2 接管中斷版本的常用函式 241
11.5.3 非接管中斷 245
11.6 中斷管理實驗 246
11.6.1 接管中斷方式 246
11.6.2 非接管中斷方式 251
11.7 實驗現象 256
第 12章 鍊表 257
12.1 C語言中的鍊表 257
12.2 鍊表的使用 258
12.2.1 鍊表初始化函式LOS_ListInit 258
12.2.2 向鍊表中添加節點函式LOS_ListAdd 259
12.2.3 從鍊表中刪除節點函式LOS_ListDelete 260
12.3 雙向鍊表實驗 261
12.4 實驗現象 264

作者簡介

劉火良,野火電子創始人,系統工程師,近十年來一直從事嵌入式系統的軟硬體開發工作,出版著作有《STM32庫開發實戰指南-基於STM32F103(第2版)》,《STM32庫開發實戰指南-基於STM32F4》,《freeRTOS核心實現與套用開發實戰指南》,《ucosiii核心實現與套用開發實戰指南》《RT-Thread核心實現與套用開發實戰指南》,《Lwip套用開發實戰指南》。

相關詞條

熱門詞條

聯絡我們