-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

嵌入式實時操作系統:RT-Thread設計與實現

( 簡體 字)
作者:邱? 熊譜翔 朱天龍 著類別:1. -> 電腦組織與體系結構 -> 嵌入式系統
譯者:
出版社:機械工業出版社嵌入式實時操作系統:RT-Thread設計與實現 3dWoo書號: 50703
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:2/1/2019
頁數:330
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111619345
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

為什么要寫這本書

自2006年發布V0.01版起,到今年正式發布V4.0版,RT-Thread歷經12年的累積發展,憑借良好的口碑和開源免費的策略,已經擁有了一個國內最大的嵌入式開源社區,積聚了數十萬的軟件愛好者。RT-Thread廣泛應用于能源、車載、醫療、消費電子等眾多行業,已成為國人自主開發、最成熟穩定和裝機量最大的開源嵌入式操作系統。

深處于行業之中,我們深刻地感受到近年來國內芯片產業和物聯網產業快速崛起的趨勢,行業發展迫切需要更多人才,尤其是掌握嵌入式操作系統等底層技術的人才,我們希望通過本書讓RT-Thread觸達更多人群,讓更多的人了解集聚國人智慧的RT-Thread操作系統,從而讓RT-Thread賦能更多行業,真正做到“積識成睿,慧澤百川”。

另外,高校學生是RT-Thread非常重視的群體,從2018年起,RT-Thread啟動了一系列大學生計劃,包括送書計劃、培訓計劃、合作開課、贊助競賽等,以幫助學生了解和學習RT-Thread,本書編寫盡可能做到簡單、易懂,讓大學生能夠輕松上手RT-Thread。希望本書能夠加快RT-Thread在高校的普及。

總之,本書的初衷在于降低RT-Thread的學習門檻,讓更多人能輕松學習、掌握RT-Thread,從而參與開發RT-Thread,共同打造開源、開放、小而美的物聯網操作系統。

讀者對象

所有使用C/C++進行編程的開發人員;

嵌入式軟硬件工程師、電子工程師、物聯網開發工程師;

高校計算機/電子/自動化/通信類專業學生、老師;

其他對嵌入式操作系統感興趣的人員。

如何閱讀本書

為了能夠閱讀本書,建議先學習C語言和STM32編程知識,如果有數據結構和面向對象編程基礎則更佳。學習本書時,大多數章節都有配套示例代碼,這些代碼都可以實際運行,建議邊閱讀邊實戰,讀完一章的同時完成該章示例實驗。

本書分為兩大部分,共16章:第1∼10章為內核篇;第11∼16章為組件篇。

第1∼9章介紹RT-Thread內核,首先對RT-Thread進行總體介紹,在隨后各章中分別介紹RT-Thread的線程管理、時鐘管理、線程間同步、線程間通信、內存管理、中斷管理,每章都有配套的示例代碼,這部分示例可運行在Keil MDK模擬器環境下,不需要任何硬件。

第10章介紹RT-Thread內核移植,讀完本章,可以將RT-Thread移植到實際的硬件板上運行。

第11∼16章介紹RT-Thread組件部分,分別介紹Env開發環境、FinSH控制臺、設備管理、文件系統和網絡框架,這部分配套示例可以運行在硬件板上,分別完成外設訪問、文件系統讀寫、網絡通信功能。

本書配套資料包括實驗源碼及相關工具軟件、硬件資料,可以通過關注微信公眾號“RTThread物聯網操作系統”獲得。

配套硬件

本書配套硬件為RT-Thread與正點原子聯合開發的IoT Board開發板,基于STM32L475主芯片,本書組件篇配套的示例代碼都基于IoT Board。

IoT Board開發板

本書第16章需要用到如下圖所示的ENC28J60模塊實現網絡示例功能。

ENC28J60網絡模塊

如果已經購買其他開發板,如下圖所示的野火和正點原子開發板,也可以配合本書進行學習,前提是根據第10章的介紹完成開發板上的RT-Thread內核移植,然后實現相關的外設驅動。

野火和正點原子開發板

勘誤和支持

由于筆者水平有限,編寫時間倉促,書中難免會存在一些錯誤或者不準確的地方,懇請讀者到論壇發帖指正,RT-Thread官方論壇地址為https://www.rt-thread.org/qa/。在學習過程中遇到任何問題,也可以發帖交流,期待能夠得到你們的真誠反饋,在技術之路上互勉共進。

致謝

本書由諸多RT-Thread開發者小伙伴集體完成,除封面作者外,楊潔、羅嬌、虞昊迪、張源、鄒誠、姚金潤也參與了本書編寫工作,郭占鑫、韓方黎、楊廣亮、趙盼盼等參與了本書校對工作,王卓然對書稿開發提出了寶貴建議,感謝大家為本書出版做出的貢獻。

感謝機械工業出版社華章公司編輯高婧雅幫助和引導我們順利完成全部書稿。

邱 ?

2018年11月
內容簡介:

本書由自研開源嵌入式實時操作系統RT-Thread核心作者撰寫,專業性毋庸置疑,系統剖析嵌入式系統核心設計與實現,掌握物聯網操作系統精髓。本書分為兩大部分,共16章,第1∼10章為內核篇;第11∼16章為組件篇。

內核篇(第1∼10章)詳解RT-Thread內核,先對RT-Thread進行總體介紹,再分別介紹RT-Thread的核心技術——線程管理、時鐘管理、線程間同步、線程間通信、內存管理、中斷管理與內核移植。

組件篇(第11∼16章)分別介紹Env開發環境、FinSH控制臺、設備管理、文件系統和網絡框架。

各章均有配套示例,方便讀者動手實踐和參考。



物聯網時代,原有的格局和模式將會被完全打破,聯網設備的開發難度也呈幾何級數增加,可靠性、長待機、低成本、通信方式和傳輸協議、手機兼容性、二次開發、云端對接等都成為必須考慮與解決的問題。對于企業來說,帶有豐富中間層組件和標準API接口的OS平臺無疑能大大降低聯網終端開發的難度,也能簡化與多種云平臺的對接,為未來各種IoT服務應用的部署和更新鋪平道路。

經驗證明,作為底層核心技術,唯有自研可控才是可持續發展之道,國產物聯網芯片逐漸崛起,產業鏈持續增強的優勢,為國產IoT OS提供了良好的機遇和土壤。開源嵌入式實時操作系統RT-Thread經過十多年的累積發展,廣泛應用于能源、車載、醫療、消費電子等各個行業,為我國的物聯網產業提供了發展的基礎。RT-Thread 成為越來越多芯片廠商、終端公司、云服務商、方案商的產品開發首選,了解和學習 RT-Thread 嵌入式實時操作系統內核的設計與實現,可以更好地賦能業務。

本書具有以下特點:

由RT-Thread官方核心成員撰寫,專業性毋庸置疑;

掌握嵌入式操作系統內核與常用組件的工作機制和應用方式;

配套的示例代碼,實際動手深入體會,為未來實際應用與開發提供參考。
目錄:

前言
第一篇 內核篇
第1章 嵌入式實時操作系統 2
1.1 嵌入式系統 3
1.2 實時系統 4
1.3 嵌入式實時操作系統 6
1.3.1 主流嵌入式實時操作系統 7
1.3.2 發展趨勢 8
1.4 本章小結 8
第2章 了解與快速上手RT-Thread 9
2.1 RT-Thread概述 9
2.2 RT-Thread的架構 10
2.3 RT-Thread的獲取 11
2.4 RT-Thread快速上手 12
2.4.1 準備環境 13
2.4.2 初識RT-Thread 16
2.4.3 跑馬燈的例子 20
2.5 本章小結 21
第3章 內核基礎 22
3.1 RT-Thread內核介紹 22
3.2 RT-Thread 啟動流程 24
3.3 RT-Thread程序內存分布 26
3.4 RT-Thread自動初始化機制 28
3.5 RT-Thread內核對象模型 29
3.5.1 靜態對象和動態對象 29
3.5.2 內核對象管理架構 31
3.5.3 對象控制塊 33
3.5.4 內核對象管理方式 34
3.6 RT-Thread內核配置示例 36
3.7 常見宏定義說明 38
3.8 本章小結 39
第4章 線程管理 40
4.1 線程管理的功能特點 40
4.2 線程的工作機制 41
4.2.1 線程控制塊 41
4.2.2 線程的重要屬性 42
4.2.3 線程狀態切換 45
4.2.4 系統線程 46
4.3 線程的管理方式 46
4.3.1 創建和刪除線程 47
4.3.2 初始化和脫離線程 48
4.3.3 啟動線程 49
4.3.4 獲得當前線程 50
4.3.5 使線程讓出處理器資源 50
4.3.6 使線程睡眠 50
4.3.7 掛起和恢復線程 51
4.3.8 控制線程 52
4.3.9 設置和刪除空閑鉤子 52
4.3.10 設置調度器鉤子 53
4.4 線程應用示例 53
4.4.1 創建線程示例 54
4.4.2 線程時間片輪轉調度示例 56
4.4.3 線程調度器鉤子示例 57
4.5 本章小結 59
第5章 時鐘管理 60
5.1 時鐘節拍 60
5.1.1 時鐘節拍的實現方式 60
5.1.2 獲取時鐘節拍 61
5.2 定時器管理 62
5.2.1 RT-Thread定時器介紹 62
5.2.2 定時器的工作機制 63
5.2.3 定時器的管理方式 65
5.3 定時器應用示例 69
5.4 高精度延時 72
5.5 本章小結 73
第6章 線程間同步 74
6.1 信號量 75
6.1.1 信號量的工作機制 75
6.1.2 信號量控制塊 75
6.1.3 信號量的管理方式 76
6.1.4 信號量應用示例 79
6.1.5 信號量的使用場合 85
6.2 互斥量 87
6.2.1 互斥量的工作機制 87
6.2.2 互斥量控制塊 89
6.2.3 互斥量的管理方式 89
6.2.4 互斥量應用示例 92
6.2.5 互斥量的使用場合 97
6.3 事件集 97
6.3.1 事件集的工作機制 97
6.3.2 事件集控制塊 98
6.3.3 事件集的管理方式 99
6.3.4 事件集應用示例 101
6.3.5 事件集的使用場合 104
6.4 本章小結 104
第7章 線程間通信 105
7.1 郵箱 105
7.1.1 郵箱的工作機制 105
7.1.2 郵箱控制塊 106
7.1.3 郵箱的管理方式 106
7.1.4 郵箱使用示例 110
7.1.5 郵箱的使用場合 112
7.2 消息隊列 113
7.2.1 消息隊列的工作機制 113
7.2.2 消息隊列控制塊 114
7.2.3 消息隊列的管理方式 115
7.2.4 消息隊列應用示例 118
7.2.5 消息隊列的使用場合 121
7.3 信號 123
7.3.1 信號的工作機制 123
7.3.2 信號的管理方式 124
7.3.3 信號應用示例 126
7.4 本章小節 128
第8章 內存管理 129
8.1 內存管理的功能特點 129
8.2 內存堆管理 130
8.2.1 小內存管理算法 131
8.2.2 slab管理算法 132
8.2.3 memheap管理算法 133
8.2.4 內存堆配置和初始化 134
8.2.5 內存堆的管理方式 134
8.2.6 內存堆管理應用示例 136
8.3 內存池 138
8.3.1 內存池的工作機制 139
8.3.2 內存池的管理方式 140
8.3.3 內存池應用示例 143
8.4 本章小結 145
第9章 中斷管理 146
9.1 Cortex-M CPU架構基礎 146
9.1.1 寄存器介紹 147
9.1.2 操作模式和特權級別 148
9.1.3 嵌套向量中斷控制器 148
9.1.4 PendSV系統調用 149
9.2 RT-Thread中斷工作機制 149
9.2.1 中斷向量表 149
9.2.2 中斷處理過程 151
9.2.3 中斷嵌套 153
9.2.4 中斷棧 154
9.2.5 中斷的底半處理 154
9.3 RT-Thread中斷管理接口 156
9.3.1 中斷服務程序掛接 157
9.3.2 中斷源管理 158
9.3.3 全局中斷開關 158
9.3.4 中斷通知 160
9.4 中斷與輪詢 161
9.5 全局中斷開關使用示例 162
9.6 本章小結 164
第10章 內核移植 165
10.1 CPU架構移植 165
10.1.1 實現全局中斷開關 166
10.1.2 實現線程棧初始化 167
10.1.3 實現上下文切換 168
10.1.4 實現時鐘節拍 174
10.2 BSP移植 175
10.3 內核移植示例 175
10.3.1 準備裸機工程 176
10.3.2 建立RT-Thread工程 177
10.3.3 實現時鐘管理 179
10.3.4 實現控制臺輸出 180
10.3.5 實現動態堆內存管理 181
10.3.6 移植到更多開發板 183
10.4 本章小結 184
第二篇 組件篇
第11章 Env輔助開發環境 186
11.1 Env簡介 186
11.2 Env的功能特點 187
11.3 Env工程構建示例 189
11.4 構建更多MDK工程 196
11.4.1 創建外設示例工程 196
11.4.2 創建文件系統示例工程 198
11.4.3 創建網絡示例工程 202
11.5 本章小結 206
第12章 FinSH控制臺 207
12.1 FinSH介紹 207
12.2 FinSH內置命令 209
12.2.1 顯示線程狀態 210
12.2.2 顯示信號量狀態 210
12.2.3 顯示事件狀態 210
12.2.4 顯示互斥量狀態 210
12.2.5 顯示郵箱狀態 211
12.2.6 顯示消息隊列狀態 211
12.2.7 顯示內存池狀態 211
12.2.8 顯示定時器狀態 212
12.2.9 顯示設備狀態 212
12.2.10 顯示動態內存狀態 212
12.3 自定義FinSH命令 213
12.3.1 自定義msh命令 213
12.3.2 自定義C-Style命令和變量 213
12.3.3 自定義命令重命名 214
12.4 FinSH功能配置 214
12.5 FinSH應用示例 216
12.5.1 自定義msh命令示例 216
12.5.2 帶參數的msh命令示例 217
12.6 本章小結 218
第13章 I/O設備管理 219
13.1 I/O設備介紹 219
13.1.1 I/O設備管理框架 219
13.1.2 I/O設備模型 221
13.1.3 I/O設備類型 222
13.2 創建和注冊I/O設備 223
13.3 訪問I/O設備 226
13.3.1 查找設備 226
13.3.2 初始化設備 227
13.3.3 打開和關閉設備 227
13.3.4 控制設備 228
13.3.5 讀寫設備 229
13.3.6 數據收發回調 229
13.3.7 設備訪問示例 230
13.4 本章小結 231
第14章 通用外設接口 232
14.1 UART串口 232
14.1.1 串口設備管理 233
14.1.2 創建和注冊串口設備 233
14.1.3 訪問串口設備 235
14.1.4 串口設備使用示例 235
14.2 GPIO 237
14.2.1 PIN設備管理 238
14.2.2 創建和注冊PIN設備 238
14.2.3 訪問PIN設備 239
14.2.4 PIN設備使用示例 242
14.3 SPI總線 243
14.3.1 SPI設備管理 244
14.3.2 創建和注冊SPI總線設備 246
14.3.3 創建和掛載SPI從設備 247
14.3.4 訪問SPI從設備 249
14.3.5 特殊使用場景 254
14.3.6 SPI設備使用示例 255
14.4 I2C總線 256
14.4.1 I2C設備管理 258
14.4.2 創建和注冊I2C總線設備 258
14.4.3 訪問I2C設備 259
14.4.4 I2C設備應用示例 260
14.5 運行設備應用示例 263
14.5.1 運行PIN設備示例 264
14.5.2 運行SPI設備示例 265
14.5.3 運行I2C設備示例 266
14.5.4 運行串口設備示例 266
14.6 本章小結 267
第15章 虛擬文件系統 268
15.1 DFS介紹 268
15.1.1 DFS架構 269
15.1.2 POSIX接口層 269
15.1.3 虛擬文件系統層 270
15.1.4 設備抽象層 270
15.2 文件系統掛載管理 271
15.2.1 DFS組件初始化 271
15.2.2 注冊文件系統 271
15.2.3 將存儲設備注冊為塊設備 271
15.2.4 格式化文件系統 272
15.2.5 掛載文件系統 273
15.2.6 卸載文件系統 273
15.3 文件管理 273
15.3.1 打開和關閉文件 273
15.3.2 讀寫數據 274
15.3.3 重命名 275
15.3.4 獲取狀態 275
15.3.5 刪除文件 275
15.3.6 同步文件數據到存儲設備 276
15.3.7 查詢文件系統相關信息 276
15.3.8 監視I/O設備狀態 276
15.4 目錄管理 277
15.4.1 創建和刪除目錄 277
15.4.2 打開和關閉目錄 277
15.4.3 讀取目錄 278
15.4.4 獲取目錄流的讀取位置 278
15.4.5 設置下次讀取目錄的位置 278
15.4.6 重設讀取目錄的位置為開頭位置 279
15.5 DFS功能配置 279
15.6 DFS應用示例 279
15.6.1 準備工作 280
15.6.2 讀寫文件示例 283
15.6.3 更改文件名稱示例 284
15.6.4 獲取文件狀態示例 285
15.6.5 創建目錄示例 286
15.6.6 讀取目錄示例 286
15.6.7 設置讀取目錄位置示例 287
15.7 本章小結 289
第16章 網絡框架 290
16.1 TCP/IP網絡協議簡介 290
16.1.1 OSI參考模型 290
16.1.2 TCP/IP參考模型 291
16.1.3 TCP/IP參考模型和OSI參考模型的區別 291
16.1.4 IP地址 292
16.1.5 子網掩碼 292
16.1.6 MAC 地址 292
16.2 RT-Thread網絡框架介紹 292
16.3 網絡框架工作流程 294
16.3.1 網絡協議簇注冊 294
16.3.2 網絡數據接收流程 295
16.3.3 網絡數據發送流程 296
16.4 網絡套接字編程 296
16.4.1 TCP socket通信流程 296
16.4.2 UDP socket通信流程 297
16.4.3 創建套接字 298
16.4.4 綁定套接字 298
16.4.5 建立TCP連接 299
16.4.6 數據傳輸 300
16.4.7 關閉網絡連接 301
16.5 網絡功能配置 302
16.6 網絡應用示例 303
16.6.1 準備工作 303
16.6.2 TCP客戶端示例 306
16.6.3 UDP客戶端示例 310
16.7 本章小結 312
附錄A menuconfig配置選項 313
附錄B SCons構建系統 317
序: