物聯網實時操作系統原理與實戰

羅西 著

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

商品描述

本書以RT Thread操作系統為例,系統地闡述了物聯網項目開發中,
實時操作系統的作用、內核原理、組件技術以及如何利用其組件化開發平台搭建實際的物聯網項目。

全書內容分為兩大部分,共17章,其中,第1~8章為原理部分,第9~17章為實戰部分。
原理部分按照物聯網體系、嵌入式系統、
實時內核的逐層遞進關係,系統地介紹了RT Thread作為物聯網實時操作系統在物聯網項目體系中的作用,
以及其自身的內核原理、組件技術等相關知識。
實戰部分基於RT Thread操作系統,選取有物聯網特色的實戰案例,由淺入深地介紹了7個項目的開發過程。
項目涉及物聯網開發中感知層、網絡層以及應用層的實現方法。
各章節均有配套示例,便於讀者更好地理解原理知識和提升物聯網項目開發能力。
讀者可以登錄北京航空航天大學出版社官網獲取源碼資源。
本書適合希望進入物聯網行業的技術人員參考學習。

目錄大綱

第一部分原理篇
第1章物聯網與嵌入式 3
1.1 物聯網發展歷程 3
1.2 物聯網架構 5
1.3 物聯網核心技術 6
1.4 嵌入式系統10
1.4.1 嵌入式系統概念10
1.4.2 嵌入式系統體系10
1.5 嵌入式實時操作系統(RTOS) 12
1.5.1 嵌入式實時操作系統介紹12
1.5.2 嵌入式實時操作系統的重要性能指標12
1.5.3 幾種常用的嵌入式實時操作系統13
1.6 RT Thread概述14
1.6.1 RT Thread簡介14
1.6.2 RT Thread架構體系15
第2章仿真環境搭建17
2.1 RT Thread源碼獲取17
2.2 MDK5安裝18
2.3 仿真工程20
2.3.1 獲取Nano版本源碼20
2.3.2 RT Thread Pack包安裝21
2.4 MDK5仿真環境配置23
第3章線程管理26
3.1 線程與進程26
3.1.1 線程與進程的概念26
3.1.2 線程與進程的關係與區別27
3.1.3 線程與進程的優缺點27
3.1.4 線程與進程的案例28
3.1.5 線程與進程的管理模型29
3.2 裸機系統與多線程系統31
3.2.1 裸機系統31
3.2.2 多線程系統33
3.2.3 祼機系統與多線程系統的區別與應用34
3.3 線程的工作機制35
3.3.1 多線程並行與並發機制35
3.3.2 內核對象與對象容器35
3.3.3 系統啟動過程37
3.3.4 線程分類39
3.3.5 線程狀態42
3.4 線程管理44
3.4.1 線程的結構44
3.4.2 線程的創建47
3.4.3 線程的刪除49
3.4.4 線程的啟動50
3.4.5 線程的掛起和恢復50
3.4.6 延時處理51
3.4.7 其他處理52
3.4.8 鉤子函數的設置與刪除53
3.5 線程的調度機制54
3.5.1 優先級調度54
3.5.2 時間片調度54
3.5.3 調度器55
3.5.4 就緒表55
3.6 線程的應用示例56
3.6.1 示例要求56
3.6.2 示例實現56
第4章線程同步59
4.1 信號量60
4.1.1 信號量概念60
4.1.2 信號量組成61
4.1.3 信號量分類61
4.1.4 計數信號量工作機制61
4.1.5 二值信號量工作機制62
4.1.6 信號量接口函數63
4.1.7 信號量應用示例67
4.2 互斥量71
4.2.1 互斥量的組成71
4.2.2 互斥量的工作機制71
4.2.3 優先級翻轉72
4.2.4 互斥量的接口函數78
4.2.5 互斥量的應用示例80
4.3 事件集84
4.3.1 事件集的特點85
4.3.2 事件集的組成85
4.3.3 事件集的工作機制85
4.3.4 事件集的接口函數86
4.3.5 事件集的應用示例89
第5章線程通信93
5.1 消息郵箱93
5.1.1 消息郵箱的特性94
5.1.2 消息郵箱的組成94
5.1.3 消息郵箱的工作機制95
5.1.4 消息郵箱的接口函數96
5.1.5 消息郵箱的應用示例99
5.2 消息隊列103
5.2.1 消息隊列的特性103
5.2.2 消息隊列的組成103
5.2.3 消息隊列的工作機制104
5.2.4 消息隊列的接口函數105
5.2.5 消息隊列的應用示例110
5.3 信號114
5.3.1 信號的背景知識114
5.3.2 信號的工作機制115
5.3.3 信號與中斷、事件的對比116
5.3.4 信號的接口函數116
5.3.5 信號的應用示例118
第6章中斷與時鐘122
6.1 中斷概述122
6.2 中斷術語及性能123
6.3 中斷分類126
6.3.1 按概念範疇劃分126
6.3.2 按能否屏蔽劃分126
6.3.3 按中斷源劃分127
6.3.4 按中斷信號的產生方式劃分127
6.4 中斷處理過程127
6.4.1 中斷處理的一般流程127
6.4.2 RT Thread中斷處理流程130
6.4.3 中斷服務程序的編寫132
6.5 系統時鐘132
6.6 時鐘管理133
6.6.1 時鐘節拍的概念133
6.6.2 時鐘節拍的實現134
6.6.3 時鐘節拍的獲取134
6.7 定時器管理134
6.7.1 定時器分類134
6.7.2 軟件定時器分類135
6.7.3 定時器的工作機制135
6.7.4 定時器的操作接口136
6.8 定時器應用示例140
第7章內存管理143
7.1 內存管理基本概念143
7.2 內存管理工作機制144
7.2.1 靜態內存管理145
7.2.2 動態內存管理146
7.3 內存管理接口函數149
7.3.1 靜態內存管理接口函數149
7.3.2 動態內存管理接口函數152
7.4 內存管理應用示例155
第8章組件應用160
8.1 組件概述30 ?160
8.2 ENV輔助工具161
8.2.1 ENV輔助工具的獲取161
8.2.2 ENV輔助工具的註冊163
8.2.3 ENV輔助工具的功能介紹164
8.3 FinSH控制台167
8.3.1 FinSH 控制台輸入模式167
8.3.2 FinSH 控制台內置命令168
8.3.3 FinSH 控制台自定義命令171
8.4 文件系統172
8.4.1 常用文件系統172
8.4.2 DFS簡介173
8.4.3 DFS架構173
8.4.4 DFS數據結構174
8.4.5 DFS使用步驟175
8.4.6 DFS管理接口176
8.4.7 文件系統應用示例177
8.5 網絡通信181
8.5.1 Socket(套接字)模型181
8.5.2 SAL組件簡介182
8.5.3 AT設備通信183
8.5.4 網絡通信應用示例185
第二部分實戰篇
第9章開發環境介紹191
9.1 硬件資源介紹191
9.1.1 開發板配件191
9.1.2 上電檢測191
9.1.3 板載資源192
9.1.4 調試工具193
9.2 軟件工具介紹198
9.2.1 MDK開發工具198
9.2.2 STM32CubeMX配置工具202
9.3 RT Thread系統移植206
9.3.1 Nano版本移植206
9.3.2 標準版本移植215
第10章多線程郵箱通信224
10.1 項目準備224
10.2 線程管理224
10.3 線程創建225
10.3.1 創建靜態線程225
10.3.2 創建動態線程226
10.4 消息郵箱通信226
10.4.1 功能設計227__
10.4.3 消息郵箱的使用227
10.5 消息郵箱通信測試229
10.5.1 硬件連接229
10.5.2 驅動安裝229
10.5.3 程序燒寫230
10.5.4 串口調試231
第11章多線程隊列通信234
11.1 項目準備234
11.2 消息隊列工作機制234
11.3 串口DMA接收原理235
11.4 項目實現236
11.4.1 串口選擇236
11.4.2 串口配置236
11.4.3 ENV串口配置237
11.4.4 程序實現238
11.5 項目測試242
11.5.1 硬件接線242
11.5.2 串口測試243
第12章GUI移植245
12.1 項目準備245
12.2 初識LVGL 245
12.3 LVGL移植246
12.3.1 文件準備246
12.3.2 文件導入247
12.3.3 配置腳本247
12.3.4 使用ENV工具配置LVGL 248
12.3.5 生成MDK工程249
12.4 GUI開發250
12.4.1 添加LVGL示例文件250
12.4.2 添加LCD驅動251
12.4.3 SRAM 配置255
12.4.4 使能CRC校驗256
12.4.5 使能內存分配算法257
12.4.6 SRAM 功能使能257
12.4.7 編寫程序258
12.4.8 錯誤處理260
12.5 GUI測試260__
第13章環境光強採集系統262
13.1 項目準備262
13.2 ADC傳感器262
13.2.1 ADC簡介263
13.2.2 傳感器電路原理263
13.2.3 ADC時鐘264
13.2.4 ADC配置265
13.3 項目開發268
13.3.1 ADC外設初始化269
13.3.2 獲取光敏傳感器數值270
13.3.3 LVGL界面顯示273
13.4 測試效果279
13.4.1 串口顯示光照強度279
13.4.2 LCD屏幕顯示光照強度280
第14章環境溫濕度採集系統281
14.1 項目準備281
14.2 DHT11傳感器介紹281
14.2.1 引腳封裝282
14.2.2 工作原理283
14.3 項目開發285
14.3.1 硬件連接與配置285
14.3.2 ENV配置軟件包285
14.3.3 溫濕度採集線程開發287
14.3.4 溫濕度顯示線程開發289
14.4 項目測試294
14.4.1 串口顯示溫濕度數據294
14.4.2 LCD屏幕顯示溫濕度294
第15章文件存儲系統296
15.1 項目準備296
15.2 文件系統介紹296
15.3 文件系統端口配置297
15.4 文件系統軟件包配置298
15.4.1 FatFs組件配置298
15.4.2 SDIO端口配置298
15.5 項目開發299
15.5.1 文件掛載線程299
15.5.2 文件讀寫操作的實現301
15.5.3 溫濕度採集線程實現303
15.6 項目測試307
第16章物聯網雲平台309
16.1 物聯網雲平台的概念309
16.2 物聯網雲平台的系統架構310
16.3 國內外主流的物聯網雲平台311
16.4 阿里雲物聯網平台簡介311
16.4.1 阿里雲物聯網平台架構312
16.4.2 阿里雲物聯網平台通信313
16.4.3 阿里雲物聯網平台的主要功能313
16.4.4 阿里雲物聯網平台的優勢314
16.5 阿里雲物聯網平台應用315
16.5.1 阿里雲物聯網平台配置315
16.5.2 MQTT.fx工具配置317
16.5.3 設備接入雲平台測試322
16.6 OneNET雲平台簡介324
16.6.1 OneNET雲平台架構324
16.6.2 OneNET雲平台通信325
16.6.3 OneNET雲平台的主要功能325
16.6.4 OneNET雲平台的資源模型327
16.7 OneNET雲平台應用328
16.7.1 OneNET雲平台配置328
16.7.2 MQTT.fx工具配置330
16.7.3 設備接入雲平台測試332
第17章智能環境監控系統334
17.1 項目準備334
17.2 項目架構334
17.3 項目實現335
17.3.1 嵌入式部分的實現335
17.3.2 雲平台部分的實現368
17.4 項目測試386
17.4.1 串口信息測試386
17.4.2 LCD界面測試387
17.4.3 雲平台測試387
17.5 項目總結388