-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
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書號
詳細書籍分類

嵌入式實時操作系統 ——基于ARM Mbed OS的應用實踐

( 簡體 字)
作者:王宜懷 等類別:1. -> 電腦組織與體系結構 -> 嵌入式系統
譯者:
出版社:電子工業出版社嵌入式實時操作系統 ——基于ARM Mbed OS的應用實踐 3dWoo書號: 55916
詢問書籍請說出此書號!

缺書
NT售價: 690

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

譯者序:

前言:

嵌入式實時操作系統是面向微控制器類應用的嵌入式人工智能與物聯網終端的重要工具和運行載體,它的種類繁多。但是,其共性是一致的,就是多線程編程,內核負責調度,線程之間或線程與中斷服務程序之間采用通信機制。不同實時操作系統的性能及對外接口函數等有一定差異,但均包含調度、延時函數、事件、消息隊列、信號量、互斥量等基本要素。學習實時操作系統有兩個可能的出發點:一是學會在實時操作系統場景下進行基本應用程序開發;二是在掌握應用編程的前提下,理解其運行原理,進行深度應用程序開發。本書基于這兩種場景進行撰寫。
雖然實時操作系統種類繁多,有國外的,也有國產的;有收費的,也有免費的;有開發者持續維護升級的,也有依賴愛好者更新升級的。但是無論哪一種,學習實時操作系統時都必須以一個具體的實時操作系統為藍本。實際上,不同的實時操作系統,其應用方法及原理大同小異,掌握其共性是學習的關鍵,這樣才能達到舉一反三的效果。
本書推薦的Mbed OS是ARM公司于2014年開始推出并逐步完善的一款免費的開源嵌入式實時操作系統,Mbed OS專為基于ARM Cortex-M內核的MCU設計,主要面向物聯網終端。本書以Mbed OS為藍本,以通用嵌入式計算機(GEC)為硬件載體,闡述實時操作系統中的線程、調度、延時函數、事件、消息隊列、線程信號、信號量、互斥量等基本要素,給出實時操作系統下的程序設計方法。
為了讓讀者更容易學習、應用實時操作系統,本書把應用與原理分開撰寫,先學習應用,后學習原理。全書包括基礎應用篇(第1∼7章)、原理剖析篇(第8∼12章)及綜合實踐篇(第13、14章)三大部分,如果讀者只做實時操作系統下的應用開發,可只閱讀基礎應用篇與綜合實踐篇;如果希望理解實時操作系統原理,那么建議通讀全書。基礎應用篇將Mbed OS駐留于BIOS內部,并在此基礎上進行實時操作系統下應用開發的學習實踐,架構簡潔明了,編譯鏈接速度快,符合應用開發特點。原理剖析篇采用源代碼級剖析,利用printf輸出至工具計算機顯示屏,清晰給出運行原理,達到知其然也知其所以然的目的。綜合實踐篇為實時操作系統在嵌入式人工智能與物聯網領域的綜合應用。本書若作為教材,可根據課時做適當縮減,一般情況下,在本科教學中,基礎應用篇和綜合實踐篇是重點,若用于研究生教學,原理剖析篇則作為重點。
本書配有網上電子資源,主要包含文檔及源代碼等。獲得途徑:搜索“蘇州大學嵌入式學習社區”官網,在“著作”→“mbedOS”欄目下獲得電子資源。
需要特別說明的是,為了體現實時操作系統的共性技術,本書在撰寫內容上最大限度地與本書第一作者的另外一部著作《嵌入式實時操作系統——基于RT-Thread的EAI&IoT系統開發》(參考文獻[1])保持一致,但實時操作系統的藍本不同。
蘇州大學嵌入式人工智能與物聯網實驗室的研究生參與了本書的程序開發及書稿整理工作,劉純平教授、趙雷教授、章曉芳副教授、李領治副教授、徐麗華副教授、徐文彬副教授等參與了本書討論,蘇州金蒲蘆物聯網技術有限公司的施連敏博士提出了建設性的建議,在此一一表示感謝。鑒于作者水平有限,書中難免存在不足之處,懇請讀者批評指正。

作者
2021年9月
內容簡介:

嵌入式實時操作系統是嵌入式人工智能與物聯網終端的重要工具和運行載體。本書以ARM Mbed OS實時操作系統為背景,闡述實時操作系統的線程、調度、延時函數、事件、消息隊列、線程信號、信號量、互斥量等基本要素,給出實時操作系統下的程序設計方法。本書分為基礎應用篇(第1∼7章)、原理剖析篇(第8∼12章)及綜合實踐篇(第13、14章)三大部分,如果讀者只做實時操作系統下的應用開發,可只閱讀基礎應用篇與綜合實踐篇;如果希望理解實時操作系統原理,那么建議通讀全書。
目錄:

第1篇 基礎應用篇
第1章 實時操作系統的基本概念與線程基礎知識 3
1.1 實時操作系統的基本含義 3
1.1.1 嵌入式系統的基本分類 3
1.1.2 無操作系統與實時操作系統 4
1.1.3 實時操作系統與非實時操作系統 5
1.2 實時操作系統中的基本概念 6
1.2.1 線程與調度的基本含義 6
1.2.2 內核的基本概念 7
1.2.3 線程的基本概念 9
1.3 線程的三要素、四種狀態及三種基本形式 10
1.3.1 線程的三要素 10
1.3.2 線程的四種狀態 11
1.3.3 線程的三種基本形式 13
1.4 本章小結 14
第2章 相關基礎知識 17
2.1 CPU內部寄存器的分類及ARM Cortex-M處理器的主要寄存器 17
2.1.1 CPU內部寄存器的分類 17
2.1.2 ARM Cortex-M處理器的主要寄存器 18
2.2 C語言中的構造類型及編譯相關問題 21
2.2.1 C語言中的構造類型 21
2.2.2 編譯相關問題 25
2.3 實時操作系統內核使用的數據結構 26
2.3.1 棧與堆 26
2.3.2 隊列 28
2.3.3 鏈表 29
2.4 匯編語言概述 36
2.4.1 匯編語言格式 36
2.4.2 常用偽指令簡介 38
2.5 本章小結 40
第3章 Mbed OS第一個樣例工程 41
3.1 Mbed OS簡介 41
3.2 軟件和硬件開發平臺 42
3.2.1 GEC架構簡介 42
3.2.2 硬件平臺 43
3.2.3 軟件平臺 44
3.2.4 網上電子資源 45
3.3 第一個樣例工程 46
3.3.1 樣例程序功能 46
3.3.2 工程框架設計原則 46
3.3.3 無操作系統的工程框架 47
3.3.4 Mbed OS的工程框架 51
3.4 本章小結 56
第4章 實時操作系統下應用程序的基本要素 57
4.1 中斷的基本概念及處理過程 57
4.1.1 中斷的基本概念 57
4.1.2 中斷處理的基本過程 58
4.2 時間嘀嗒與延時函數 60
4.2.1 時間嘀嗒 60
4.2.2 延時函數 60
4.3 調度策略 61
4.3.1 調度基礎知識 61
4.3.2 Mbed OS中使用的調度策略 62
4.3.3 Mbed OS中的固有線程 63
4.4 實時操作系統中的功能列表 64
4.4.1 就緒列表 64
4.4.2 延時列表 64
4.4.3 等待列表 64
4.4.4 條件阻塞列表 64
4.5 本章小結 65
第5章 同步與通信的應用方法 67
5.1 實時操作系統中同步與通信的基本概念 67
5.1.1 同步的含義與通信手段 67
5.1.2 同步類型 68
5.2 事件 69
5.2.1 事件的含義及應用場合 69
5.2.2 事件的常用函數 69
5.2.3 事件的編程舉例:通過事件實現中斷與線程的通信 71
5.2.4 事件的編程舉例:通過事件實現線程之間的通信 74
5.3 消息隊列 76
5.3.1 消息隊列的含義及應用場合 76
5.3.2 消息隊列的常用函數 76
5.3.3 消息隊列的編程舉例 78
5.4 線程信號 82
5.4.1 線程信號的含義及應用場合 82
5.4.2 線程信號的常用函數 83
5.4.3 線程信號的編程舉例 84
5.5 信號量 87
5.5.1 信號量的含義及應用場合 87
5.5.2 信號量的常用函數 88
5.5.3 信號量的編程舉例 89
5.6 互斥量 92
5.6.1 互斥量的含義及應用場合 92
5.6.2 互斥量的常用函數 94
5.6.3 互斥量的編程舉例 95
5.7 本章小結 98
第6章 底層硬件驅動構件 99
6.1 嵌入式構件概述 99
6.1.1 制作構件的必要性 99
6.1.2 構件的基本概念 99
6.1.3 嵌入式開發中構件的分類 100
6.1.4 構件的基本特征與表達形式 101
6.2 底層硬件驅動構件設計原則與方法 102
6.2.1 底層硬件驅動構件設計的基本原則 102
6.2.2 底層硬件驅動構件設計要點分析 103
6.2.3 底層硬件驅動構件封裝規范概要 104
6.2.4 封裝的前期準備 105
6.3 底層硬件驅動構件設計舉例 106
6.3.1 GPIO構件 106
6.3.2 UART構件 114
6.3.3 Flash構件 119
6.3.4 ADC構件 123
6.3.5 PWM構件 127
6.4 應用構件及軟件構件設計實例 131
6.4.1 應用構件設計實例 131
6.4.2 軟件構件設計實例 133
6.5 本章小結 142
第7章 實時操作系統下的程序設計方法 143
7.1 程序穩定性問題 143
7.1.1 穩定性的基本要求 143
7.1.2 看門狗復位與定期復位的應用 144
7.1.3 臨界區的處理 147
7.2 中斷服務程序設計、線程劃分及優先級安排問題 148
7.2.1 中斷服務程序設計的基本問題 148
7.2.2 線程劃分的簡明方法 149
7.2.3 線程優先級安排問題 149
7.3 利用信號量解決并發與資源共享的問題 150
7.3.1 并發與資源共享的問題 150
7.3.2 應用實例 151
7.4 優先級反轉問題 155
7.4.1 優先級反轉問題的出現 155
7.4.2 Mbed OS中避免優先級反轉問題的方法 157
7.5 本章小結 162
第2篇 原理剖析篇
第8章 理解Mbed OS的啟動過程 165
8.1 芯片啟動到main函數之前的運行過程 165
8.1.1 尋找第一條被執行指令的存放處 165
8.1.2 通過啟動文件理解芯片啟動過程 167
8.2 Mbed OS啟動流程概要 169
8.2.1 相關宏定義及結構體 169
8.2.2 棧和堆的配置 176
8.2.3 啟動過程概述 179
8.2.4 如何運行到主線程 181
8.2.5 啟動過程總流程源代碼 182
8.3 深入理解啟動過程(一):內核初始化解析 183
8.3.1 內核初始化準備工作 183
8.3.2 進入SVC中斷服務程序SVC_Handler 186
8.3.3 實際內核初始化函數 187
8.3.4 返回流程 199
8.4 深入理解啟動過程(二):創建主線程、啟動內核 200
8.4.1 創建主線程 201
8.4.2 啟動內核 215
8.4.3 定時器線程函數 226
8.4.4 消息獲取與處理函數 228
8.4.5 線程延時等待函數 238
8.5 中斷服務程序SVC_Handler詳解 240
8.5.1 SVC_Handler功能概要 241
8.5.2 SVC_Handler完整流程 241
8.5.3 SVC_Handler功能分段解析 243
8.5.4 SVC_Handler完整代碼注釋 246
8.6 函數調用關系總結及存儲空間分析 249
8.6.1 啟動過程中函數的調用關系總結 250
8.6.2 啟動過程存儲空間分析 253
8.7 本章小結 257
第9章 理解時間嘀嗒 259
9.1 時間嘀嗒的建立與使用 259
9.1.1 SysTick定時器的寄存器 259
9.1.2 SysTick定時器的初始化 260
9.1.3 SysTick中斷服務程序 263
9.2 延時函數 266
9.2.1 線程延時等待函數 266
9.2.2 線程延時嘀嗒函數 267
9.2.3 其他時間嘀嗒函數 269
9.3 延時等待列表工作機制 271
9.3.1 線程插入延時等待列表函數 271
9.3.2 從延時等待列表中移除線程的函數 274
9.3.3 延時函數調度過程實例剖析 275
9.4 與時間相關的函數 279
9.4.1 獲取系統運行時間函數 280
9.4.2 日期轉時間戳函數 281
9.4.3 時間戳轉日期函數 283
9.5 本章小結 286
第10章 理解調度機制 287
10.1 ARM Cortex-M4的SVC和PendSV中斷的調度作用 287
10.1.1 SVC中斷的調度作用 287
10.1.2 PendSV中斷的調度作用 288
10.1.3 列表分析 288
10.2 中斷服務程序PendSV_Handler剖析 289
10.2.1 osRtxPendSV _Handler的功能概要 289
10.2.2 osRtxPendSV_Handler函數源代碼解析 290
10.2.3 跳轉到SVC_Context進行上下文切換 291
10.2.4 PendSV_Handler函數完整代碼注釋 291
10.3 PendSV應用舉例 292
10.3.1 PendSV在事件中的應用 292
10.3.2 PendSV在線程信號中的應用 296
10.4 本章小結 300
第11章 理解事件與消息隊列 301
11.1 事件 301
11.1.1 事件的相關結構體 301
11.1.2 事件函數深入剖析 302
11.1.3 事件調度剖析 307
11.2 消息隊列 311
11.2.1 消息或消息隊列結構體 311
11.2.2 消息隊列函數深入剖析 313
11.2.3 消息隊列調度剖析 318
11.3 本章小結 322
第12章 理解線程信號、信號量與互斥量 323
12.1 線程信號 323
12.1.1 線程操作函數 323
12.1.2 線程信號函數深入剖析 329
12.1.3 線程信號調度剖析 333
12.2 信號量 337
12.2.1 信號量控制塊結構體 337
12.2.2 信號量函數深入剖析 337
12.2.3 信號量調度剖析 341
12.3 互斥量 345
12.3.1 互斥量結構體 345
12.3.2 互斥量函數深入剖析 346
12.3.3 互斥量調度剖析 352
12.3.4 互斥量避免優先級反轉問題調度剖析 356
12.4 本章小結 359
第3篇 綜合實踐篇
第13章 基于Mbed OS的AHL-EORS應用 363
13.1 AHL-EORS簡介 363
13.1.1 硬件清單 363
13.1.2 硬件測試導引 364
13.2 卷積神經網絡概述 364
13.2.1 卷積神經網絡的技術特點 364
13.2.2 卷積神經網絡原理 365
13.3 AHL-EORS選用模型分析 368
13.3.1 MobileNetV2模型 369
13.3.2 NCP模型 370
13.4 AHL-EORS的數據采集與訓練過程 373
13.4.1 數據采集程序 373
13.4.2 模型訓練與部署 376
13.5 在通用嵌入式計算機GEC上進行的推理過程 377
13.6 本章小結 380
第14章 基于Mbed OS的NB-IoT應用開發 381
14.1 窄帶物聯網應用開發概述 381
14.1.1 窄帶物聯網簡介 381
14.1.2 NB-IoT應用開發所面臨的難題及解決思路 382
14.1.3 直觀體驗NB-IoT數據傳輸 383
14.1.4 金葫蘆NB-IoT開發套件簡介 384
14.2 NB-IoT應用架構及通信基本過程 386
14.2.1 建立NB-IoT應用架構的基本原則 386
14.2.2 終端UE、信息郵局MPO與人機交互系統HCI的基本定義 386
14.2.3 基于信息郵局粗略了解基本通信過程 387
14.3 終端UE與云偵聽程序的通信過程 388
14.3.1 基于mbed的終端UE模板工程設計 389
14.3.2 云偵聽模板工程功能簡介 391
14.3.3 建立云偵聽程序的運行場景 392
14.3.4 運行云偵聽與終端UE模板工程 394
14.3.5 通信過程中的常見錯誤說明 396
14.4 通過Web網頁的數據訪問 397
14.4.1 運行Web模板觀察自己終端UE的數據 397
14.4.2 NB-IoT的Web網頁模板工程結構 398
14.5 通過微信小程序的數據訪問 399
14.5.1 運行小程序模板觀察自己終端UE的數據 399
14.5.2 NB-IoT的微信小程序模板工程結構 401
參考文獻 403
序: