-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
C++嵌入式開發實例精解 版權信息
- ISBN:9787302607809
- 條形碼:9787302607809 ; 978-7-302-60780-9
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
C++嵌入式開發實例精解 本書特色
隨著硬件開發的不斷進步,越來越多的嵌入式系統由廉價而強大的系統芯片驅動,甚至能夠運行通用的多任務系統,如Linux。不斷增長的硬件能力需要我們編寫更加復雜的軟件,因此,C 越來越多地成為新的嵌入式系統的shou選語言。C 允許開發人員創建使用計算和內存資源的應用程序,就像使用C語言編寫的應用程序一樣,但為開發人員提供了更多的工具處理復雜性和更安全的資源管理問題,如面向對象編程和RAII習慣用法。
C++嵌入式開發實例精解 內容簡介
本書詳細闡述了與C++嵌入式開發相關的基本解決方案,主要包括嵌入式系統的基礎知識,配置開發環境,與不同的體系結構協同工作,處理中斷,調試、日志和分析,內存管理,多線程和同步機制,通信和序列化,外圍設備,降低功耗,時間點和時間間隔,錯誤處理和容錯機制,實時系統、安全性系統的指導原則,微控制器編程等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學用書和參考手冊。
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
- >
朝聞道
- >
山海經
- >
中國歷史的瞬間
- >
名家帶你讀魯迅:故事新編
- >
羅庸西南聯大授課錄
- >
莉莉和章魚
- >
伯納黛特,你要去哪(2021新版)
- >
龍榆生:詞曲概論/大家小書