C++ 嵌入式開發實例精解 Embedded Programming with C++ Cookbook: Practical recipes to help you build robust and secure embedded applications on Linux
Igor Viarheichyk 劉顒
- 出版商: 清華大學
- 出版日期: 2022-07-01
- 定價: $714
- 售價: 8.5 折 $607
- 語言: 簡體中文
- 頁數: 328
- 裝訂: 平裝
- ISBN: 730260780X
- ISBN-13: 9787302607809
-
相關分類:
C++ 程式語言、嵌入式系統
- 此書翻譯自: Embedded Programming with C++ Cookbook: Practical recipes to help you build robust and secure embedded applications on Linux
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
Linux 系統程式設計, 2/e (內容涵蓋 Linux Kernel 3.0) (Linux System Programming: Talking Directly to the Kernel and C Library)$780$616 -
深入理解 Linux 程式設計:從應用到核心$580$458 -
精通 C/C++ 指標|深入系統底層技術$680$537 -
$768系統工程 : 21世紀的系統方法論 -
$658奔跑吧 Linux 內核入門篇, 2/e -
深入淺出 C# : 運用 C# 和 .Net Core 編寫真正的程式, 4/e (Head First C#: A Learner's Guide to Real-World Programming with C#, Xaml, and .Net, 4/e)$980$774 -
UEFI 編程實踐$714$678 -
圖解 Docker & Kubernetes 的知識與使用方法$620$490 -
Modbus 軟件開發實戰指南, 2/e$468$445 -
$454SQL 數據分析:從基礎破冰到面試題解 -
C# 程式設計從入門到專業 (上):完全剖析 C# 技術實務, 2/e$720$562 -
C# 程式設計從入門到專業 (下):職場 C# 進階應用技術, 2/e$780$608 -
Good Code, Bad Code|寫出高品質的程式碼 (Good Code, Bad Code: Think Like a Software Engineer)$520$411 -
嵌入式系統 (使用Arduino)(附範例程式光碟)$450$405 -
$469微型電腦系統原理及應用:國產龍芯處理器的軟件和硬件集成(基礎篇) -
$469Linux C/C++ 服務器開發實踐 -
$611計算機視覺 40例從入門到深度學習 (OpenCV-Python) -
$469智能無線機器人:人工智能算法與應用 -
$250RT-Thread 應用開發實戰 — 基於 STM32 智能小車 -
馬同學圖解線性代數$768$730 -
無人機設計與開發實戰 — 基於 Paparazzi 的小型四旋翼(微課視頻版)$539$512 -
$801原子嵌入式 Linux 驅動開發詳解 -
去園區當 ARM 工程師 - 嵌入式 C語言全高度昇華$1,080$853 -
Python 桌面開發王者 - Qt 6 全方位實例應用開發$1,200$948 -
Qt 嵌入式開發實戰 — 從串口通信到 JSON 通信 (微課視頻版)$354$336
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
85折
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$544 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
78折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$390 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
本書詳細闡述了與C++嵌入式開發相關的基本解決方案,主要包括嵌入式系統的基礎知識,配置開發環境,與不同的體系結構協同工作,處理中斷,調試、日誌和分析,內存管理,多線程和同步機制,通信和序列化,外圍設備,降低功耗,時間點和時間間隔,錯誤處理和容錯機制,實時系統、安全性系統的指導原則,微控制器編程等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校電腦及相關專業的教材和教學參考書,也可作為相關開發人員的自學用書和參考手冊。
目錄大綱
目 錄
第1章 嵌入式系統的基礎知識 1
1.1 考查嵌入式系統 1
1.1.1 與臺式機或Web應用程序的不同之處 1
1.1.2 嵌入式系統的類型 2
1.1.3 微控制器 2
1.1.4 片上系統 3
1.1.5 專用集成電路 4
1.1.6 現場可編程門陣列 4
1.2 與有限的資源協同工作 4
1.3 考查性能影響 4
1.4 與不同的架構協同工作 5
1.4.1 字節順序 5
1.4.2 對齊問題 7
1.4.3 定寬整數類型 8
1.5 處理硬件錯誤 8
1.5.1 硬件的早期版本 8
1.5.2 硬件的不可靠性 9
1.5.3 環境條件的影響 9
1.6 C++嵌入式開發 9
1.6.1 不必為無用的事務付諸實踐 10
1.6.2 基於面向對象編程的代碼復雜度計算 12
1.6.3 資源獲取時即初始化 12
1.6.4 異常機制 14
1.6.5 強大的標準庫 16
1.6.6 線程和內存模型 16
1.7 遠程部署軟件 17
1.8 遠程運行軟件 18
1.9 日誌和診斷 18
1.10 本章小結 19
第2章 配置開發環境 21
2.1 在Docker容器中配置構建系統 22
2.1.1 實現方式 22
2.1.2 工作方式 23
2.1.3 更多內容 24
2.2 與模擬器協同工作 24
2.2.1 實現方式 25
2.2.2 工作方式 25
2.2.3 更多內容 27
2.3 交叉編譯 27
2.3.1 準備工作 27
2.3.2 實現方式 27
2.3.3 工作方式 28
2.3.4 更多內容 31
2.4 連接至嵌入式系統 31
2.4.1 準備工作 31
2.4.2 實現方式 31
2.4.3 工作方式 32
2.4.4 更多內容 33
2.5 調試嵌入式應用程序 34
2.5.1 準備工作 34
2.5.2 實現方式 34
2.5.3 工作方式 35
2.5.4 更多內容 36
2.6 針對遠程調試使用gdbserver 37
2.6.1 準備工作 37
2.6.2 實現方式 37
2.6.3 工作方式 38
2.6.4 更多內容 39
2.7 使用CMake作為構建系統 40
2.7.1 準備工作 40
2.7.2 實現方式 40
2.7.3 工作方式 41
2.7.4 更多內容 44
第3章 與不同的體系結構協同工作 45
3.1 定寬整數類型 45
3.1.1 實現方式 46
3.1.2 工作方式 47
3.1.3 更多內容 48
3.2 處理size_t類型 48
3.2.1 實現方式 48
3.2.2 工作方式 49
3.2.3 更多內容 50
3.3 檢測平臺的字節順序 50
3.3.1 實現方式 51
3.3.2 工作方式 52
3.3.3 更多內容 53
3.4 轉換字節順序 53
3.4.1 實現方式 54
3.4.2 工作方式 57
3.5 處理數據對齊問題 58
3.5.1 實現方式 59
3.5.2 工作方式 60
3.5.3 更多內容 61
3.6 處理打包結構 61
3.6.1 實現方式 62
3.6.2 工作方式 62
3.6.3 更多內容 63
3.7 緩存行對齊數據 63
3.7.1 實現方式 63
3.7.2 工作方式 65
3.7.3 更多內容 66
第4章 處理中斷 67
4.1 數據輪詢 67
4.2 中斷服務程序 68
4.3 對ISR的一般考慮 68
4.4 8051微控制器中斷 69
4.5 實現中斷服務程序 70
4.5.1 實現方式 70
4.5.2 工作方式 72
4.6 通過8位自動重載模式生成一個5 kHz的方波信號 73
4.6.1 實現方式 74
4.6.2 工作方式 75
4.7 使用Timer 1作為事件計數器計數一個1 Hz脈沖 76
4.7.1 實現方式 76
4.7.2 工作方式 78
4.7.3 更多內容 79
4.8 串行接收和傳輸數據 79
4.8.1 實現方式 80
4.8.2 工作方式 80
4.8.3 更多內容 81
第5章 調試、日誌和分析 83
5.1 技術需求 83
5.2 在GDB中運行源程序 84
5.2.1 實現方式 84
5.2.2 工作方式 86
5.2.3 更多內容 90
5.3 處理斷點 91
5.3.1 實現方式 91
5.3.2 工作方式 92
5.3.3 更多內容 96
5.4 處理核心轉儲 96
5.4.1 實現方式 96
5.4.2 工作方式 97
5.4.3 更多內容 99
5.5 使用gdbserver進行調試 99
5.5.1 準備工作 100
5.5.2 實現方式 100
5.5.3 工作方式 100
5.6 添加調試日誌機制 101
5.6.1 實現方式 101
5.6.2 工作方式 102
5.6.3 更多內容 104
5.7 與調試和發布版本協同工作 104
5.7.1 實現方式 105
5.7.2 工作方式 106
5.7.3 更多內容 108
第6章 內存管理 109
6.1 使用動態內存分配 109
6.1.1 實現方式 110
6.1.2 工作方式 112
6.2 對象池 112
6.2.1 實現方式 113
6.2.2 工作方式 115
6.2.3 更多內容 118
6.3 環狀緩沖區 118
6.3.1 實現方式 119
6.3.2 工作方式 121
6.4 使用共享內存 124
6.4.1 實現方式 125
6.4.2 工作方式 128
6.4.3 更多內容 131
6.5 使用專用內存 131
6.5.1 實現方式 131
6.5.2 工作方式 133
6.5.3 更多內容 135
第7章 多線程和同步機制 137
7.1 C++語言中的線程支持 137
7.1.1 實現方式 138
7.1.2 工作方式 139
7.2 數據同步機制 140
7.2.1 實現方式 140
7.2.2 工作方式 141
7.2.3 更多內容 143
7.3 使用條件變量 143
7.3.1 實現方式 143
7.3.2 工作方式 145
7.3.3 更多內容 147
7.4 使用原子變量 147
7.4.1 實現方式 148
7.4.2 工作方式 150
7.4.3 更多內容 151
7.5 使用C++內存模型 152
7.5.1 實現方式 152
7.5.2 工作方式 154
7.5.3 更多內容 155
7.6 無鎖同步機制 155
7.6.1 實現方式 155
7.6.2 工作方式 157
7.6.3 更多內容 158
7.7 在共享內存中使用原子變量 159
7.7.1 實現方式 159
7.7.2 工作方式 162
7.8 異步函數和特性 164
7.8.1 實現方式 165
7.8.2 工作方式 166
7.8.3 更多內容 168
第8章 通信和序列化 169
8.1 在應用程序中使用進程間的通信 169
8.1.1 實現方式 170
8.1.2 工作方式 172
8.1.3 更多內容 175
8.2 進程間的通信機制 175
8.2.1 準備工作 175
8.2.2 實現方式 176
8.2.3 工作方式 177
8.2.4 更多內容 178
8.3 消息隊列和發布者-訂閱者模式 178
8.3.1 實現方式 179
8.3.2 工作方式 182
8.3.3 更多內容 184
8.4 針對回調使用C++ lambda函數 185
8.4.1 實現方式 185
8.4.2 工作方式 186
8.4.3 更多內容 187
8.5 數據序列化 187
8.5.1 實現過程 188
8.5.2 工作方式 190
8.5.3 更多內容 191
8.6 使用FlatBuffers庫 192
8.6.1 實現方式 192
8.6.2 工作方式 194
8.6.3 更多內容 195
第9章 外圍設備 197
9.1 控制通過GPIO連接的設備 197
9.1.1 實現方式 197
9.1.2 工作方式 199
9.2 脈沖寬度調制 201
9.2.1 實現方式 201
9.2.2 工作方式 203
9.2.3 更多內容 204
9.3 在Linux中使用ioctl訪問實時時鐘 204
9.3.1 實現方式 205
9.3.2 工作方式 207
9.3.3 更多內容 208
9.4 使用libgpiod控制GPIO引腳 208
9.4.1 實現方式 209
9.4.2 工作方式 210
9.4.3 更多內容 211
9.5 控制I2C外圍設備 211
9.5.1 實現方式 212
9.5.2 工作方式 216
9.5.3 更多內容 219
第10章 降低功耗 221
10.1 技術需求 221
10.2 考查Linux中的節能模式 221
10.2.1 實現方式 222
10.2.2 工作方式 223
10.2.3 更多內容 224
10.3 利用RTC進行喚醒 224
10.3.1 實現方式 224
10.3.2 工作方式 225
10.3.3 更多內容 226
10.4 控制USB設備的自動掛起 226
10.4.1 實現方式 226
10.4.2 工作方式 227
10.4.3 更多內容 229
10.5 配置CPU頻率 230
10.5.1 實現方式 230
10.5.2 工作方式 231
10.5.3 更多內容 235
10.6 等待事件 235
10.6.1 實現方式 235
10.6.2 工作方式 238
10.6.3 更多內容 241
10.7 利用PowerTOP分析功耗 241
10.7.1 實現方式 241
10.7.2 工作方式 242
10.7.3 更多內容 244
第11章 時間點和時間間隔 245
11.1 C++ Chrono庫 245
11.1.1 實現方式 245
11.1.2 工作方式 246
11.1.3 更多內容 247
11.2 測量時間間隔 247
11.2.1 實現方式 248
11.2.2 工作方式 249
11.2.3 更多內容 250
11.3 處理延遲問題 250
11.3.1 實現方式 250
11.3.2 工作方式 252
11.3.3 更多內容 253
11.4 使用單調遞增時鐘 254
11.4.1 實現方式 254
11.4.2 工作方式 256
11.4.3 更多內容 257
11.5 使用POSIX時間戳 258
11.5.1 實現方式 258
11.5.2 工作方式 259
11.5.3 更多內容 260
第12章 錯誤處理和容錯機制 261
12.1 處理錯誤代碼 261
12.1.1 實現方式 261
12.1.2 工作方式 264
12.1.3 更多內容 265
12.2 針對錯誤處理使用異常 265
12.2.1 實現方式 266
12.2.2 工作方式 267
12.2.3 更多內容 269
12.3 捕捉異常時使用常量引用 269
12.3.1 實現方式 269
12.3.2 工作方式 271
12.3.3 更多內容 272
12.4 處理靜態對象 273
12.4.1 實現方式 273
12.4.2 工作方式 275
12.5 與定時器協同工作 276
12.5.1 實現方式 277
12.5.2 工作方式 278
12.6 高可用系統的心跳信號 280
12.6.1 實現方式 280
12.6.2 工作方式 283
12.6.3 更多內容 287
12.7 實現軟件反抖動邏輯 287
12.7.1 實現方式 287
12.7.2 工作方式 289
第13章 實時系統 291
13.1 使用Linux中的實時調度器 291
13.1.1 實現方式 292
13.1.2 工作方式 293
13.2 使用靜態分配的內存 295
13.2.1 實現方式 295
13.2.2 工作方式 297
13.2.3 更多內容 298
13.3 避免錯誤處理異常 298
13.3.1 實現方式 299
13.3.2 工作方式 301
13.3.3 更多內容 302
13.4 實時系統 302
13.4.1 實現方式 302
13.4.2 工作方式 303
13.4.3 更多內容 304
第14章 安全性系統的指導原則 305
14.1 使用全部函數的返回值 305
14.1.1 實現方式 306
14.1.2 工作方式 308
14.1.3 更多內容 310
14.2 使用靜態代碼分析器 310
14.2.1 實現方式 311
14.2.2 工作方式 311
14.2.3 更多內容 312
14.3 使用前置條件和後置條件 312
14.3.1 實現方式 313
14.3.2 工作方式 314
14.3.3 更多內容 316
14.4 代碼正確性的正規驗證方案 316
14.4.1 實現方式 316
14.4.2 工作方式 317
14.4.3 更多內容 319
第15章 微控制器編程 321
15.1 設置開發環境 321
15.1.1 實現方式 321
15.1.2 工作方式 322
15.1.3 更多內容 323
15.2 編譯並上傳程序 323
15.2.1 實現方式 323
15.2.2 工作方式 323
15.2.3 更多內容 325
15.3 調試微控制器代碼 326
15.3.1 實現方式 326
15.3.2 工作方式 327



