预购商品
书目分类
特别推荐
第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
王宜懷 男,1962年2月生,博士,教授、博士生導師、網路工程系主任;蘇州大學嵌入式系統與物聯網研究所所長;蘇州市政協、中國農工民主黨蘇州市委;江蘇省電腦學會嵌入式系統與物聯網專業委員會主任、中國軟體行業協會嵌入式系統分會理事。主要研究方向:嵌入式系統、物聯網與智慧控制技術。
客服公告
热门活动
订阅电子报