[ 收藏 ] [ 繁体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

     经部  史类  子部  集部  古籍管理  古籍工具书  四库全书  古籍善本影音本  中国藏书
  •  文化

     文化评述  文化随笔  文化理论  传统文化  世界各国文化  文化史  地域文化  神秘文化  文化研究  民俗文化  文化产业  民族文化  书的起源/书店  非物质文化遗产  文化事业  文化交流  比较文化学
  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

     执业资格考试用书  室内设计/装潢装修  标准/规范  建筑科学  建筑外观设计  建筑施工与监理  城乡规划/市政工程  园林景观/环境艺术  工程经济与管理  建筑史与建筑文化  建筑教材/教辅  英文原版书-建筑
  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

     园艺  植物保护  畜牧/狩猎/蚕/蜂  林业  动物医学  农作物  农学(农艺学)  水产/渔业  农业工程  农业基础科学  农林音像
  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

  •  保健/养生

  •  体育/运动

  •  手工/DIY

  •  休闲/爱好

  •  英文原版书

  •  港台图书

  •  研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学

  •  音乐
     音乐理论

     声乐  通俗音乐  音乐欣赏  钢琴  二胡  小提琴
  • C++嵌入式開發實例精解
    該商品所屬分類:計算機/網絡 -> 程序設計
    【市場價】
    588-854
    【優惠價】
    368-534
    【作者】 美艾格爾·威亞契克 
    【所屬類別】 圖書  計算機/網絡  程序設計  CC++C#VCVC++ 
    【出版社】清華大學出版社 
    【ISBN】9787302607809
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    開本:16開
    紙張:膠版紙
    包裝:平裝-膠訂

    是否套裝:否
    國際標準書號ISBN:9787302607809
    作者:[美]艾格爾·威亞契克

    出版社:清華大學出版社
    出版時間:2022年07月 

        
        
    "

    產品特色

    編輯推薦

    隨著硬件開發的不斷進步,越來越多的嵌入式繫統由廉價而強大的繫統芯片驅動,甚至能夠運行通用的多任務繫統,如Linux。不斷增長的硬件能力需要我們編寫更加復雜的軟件,因此,C 越來越多地成為新的嵌入式繫統的語言。C 允許開發人員創建使用計算和內存資源的應用程序,就像使用C語言編寫的應用程序一樣,但為開發人員提供了更多的工具處理復雜性和更安全的資源管理問題,如面向對像編程和RAII習慣用法。

     
    內容簡介

    本書詳細闡述了與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章  嵌入式繫統的基礎知識 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

    前言
    長久以來,嵌入式繫統開發基本通過C語言或彙編語言予以實現,其原因在於,硬件往往缺少應有的資源運行高級編程語言(如C 、Java或Python)編寫的程序。更為重要的是,沒有必要使用這些語言編寫軟件。有限的硬件資源限制了軟件的復雜性,嵌入式應用程序的功能依然相對簡單,這也使得C語言足以勝任此項工作。
    隨著硬件開發的不斷進步,越來越多的嵌入式繫統由廉價而強大的繫統芯片驅動,甚至能夠運行通用的多任務繫統,如Linux。不斷增長的硬件能力需要我們編寫更加復雜的軟件,因此,C 越來越多地成為新的嵌入式繫統的語言。C 允許開發人員創建使用計算和內存資源的應用程序,就像使用C語言編寫的應用程序一樣,但為開發人員提供了更多的工具處理復雜性和更安全的資源管理問題,如面向對像編程和RAII習慣用法。
    具有豐富C語言經驗的資深嵌入式開發人員通常傾向於以類似的、習慣性的方式使用C 編寫代碼,並將這種語言視為C語言的面向對像擴展,即帶有類的C語言。然而,現代C 語言擁有自己的實踐方案和概念,如果使用得當,它可以幫助開發人員避免常見的陷阱,並允許開發人員在幾行代碼中完成諸多工作。
    另一方面,當具有C 經驗的開發人員步入嵌入式繫統這一領域時,他們需要了解特定的硬件平臺,以及應用程序領域的需求、限制條件和相關功能,進而設計C 代碼。
    本書旨在填補這一項空白,並演示如何在嵌入式繫統中應用現代C 語言的特性和實踐方案。

    長久以來,嵌入式繫統開發基本通過C語言或彙編語言予以實現,其原因在於,硬件往往缺少應有的資源運行高級編程語言(如C 、Java或Python)編寫的程序。更為重要的是,沒有必要使用這些語言編寫軟件。有限的硬件資源限制了軟件的復雜性,嵌入式應用程序的功能依然相對簡單,這也使得C語言足以勝任此項工作。
    隨著硬件開發的不斷進步,越來越多的嵌入式繫統由廉價而強大的繫統芯片驅動,甚至能夠運行通用的多任務繫統,如Linux。不斷增長的硬件能力需要我們編寫更加復雜的軟件,因此,C 越來越多地成為新的嵌入式繫統的語言。C 允許開發人員創建使用計算和內存資源的應用程序,就像使用C語言編寫的應用程序一樣,但為開發人員提供了更多的工具處理復雜性和更安全的資源管理問題,如面向對像編程和RAII習慣用法。
    具有豐富C語言經驗的資深嵌入式開發人員通常傾向於以類似的、習慣性的方式使用C 編寫代碼,並將這種語言視為C語言的面向對像擴展,即帶有類的C語言。然而,現代C 語言擁有自己的實踐方案和概念,如果使用得當,它可以幫助開發人員避免常見的陷阱,並允許開發人員在幾行代碼中完成諸多工作。
    另一方面,當具有C 經驗的開發人員步入嵌入式繫統這一領域時,他們需要了解特定的硬件平臺,以及應用程序領域的需求、限制條件和相關功能,進而設計C 代碼。
    本書旨在填補這一項空白,並演示如何在嵌入式繫統中應用現代C 語言的特性和實踐方案。
    適用讀者
    本書適用於軟件開發人員、電子硬件工程師、軟件工程師和繫統芯片工程師,可幫助他們通過C 語言構建高效的嵌入式程序。
    嵌入式繫統涵蓋了較為廣泛的領域,本書試圖討論其中的一種類型,即運行Linux操作繫統的SoC,如樹莓派或BeagleBoard,並簡要介紹底層微控制器,如Arduino。
    本書希望讀者了解與C 這門編程語言相關的基礎知識,但並不需要具備豐富的C 知識或嵌入式繫統經驗。
     
    本書內容
    第1章定義了嵌入式繫統的具體含義、嵌入式繫統與其他繫統之間的區別、所需的特定編程技術,以及為何大多數時候C 語言是嵌入式開發的方案。另外,本章還將介紹嵌入式開發人員在日常工作中所面臨的約束和挑戰,即有限的繫統資源和CPU性能、處理硬件錯誤和遠程調試。
    第2章解釋了嵌入式繫統開發環境與Web或桌面應用程序開發的區別,並介紹了構建和目標繫統、交叉編譯和交叉工具箱、串行控制臺和遠程Shell等概念。對於運行Windows、macOS或Linux的大多數常見桌面配置,本章還提供了設置虛擬化構建和目標主機的實際操作步驟。
    第3章解釋了C 代碼中目標繫統的CPU架構和內存配置之間的差別。
    第4章介紹了中斷和中斷服務例程的底層概念。在現代操作繫統中,開發人員或啟動程序需要使用操作繫統提供的高層API,因而需要通過8051微控制器考查中斷技術。
    第5章討論基於Linux的嵌入式繫統的調試技術,如在目標板(target board)上直接運行gdb、針對遠程調試機制的gdb服務器,以及針對調試和故障根源分析的日志機制的重要性。
    第6章提供與內存分配相關的多個示例和實踐方案,這對於嵌入式繫統的開發人員來說十分有用。其間討論了為何需要在嵌入式應用程序中避免使用動態內存分配,以及快速、專用內存分配的相關替代方案。
    第7章將討論如何使用C 標準庫中的函數和類實現高效的多線程應用程序,同時發揮現代多核CPU的功效。
    第8章將討論進程和繫統通信間的一些概念、挑戰性問題和實踐方案,如Socket、管道、共享內存和基於FlatBuffers庫的高效內存序列化機制。另外,本章還討論如何將應用程序解耦為獨立的組件,且這些組件使用定義良好的異步協議相互通信,這實際上是擴展軟件繫統同時保持其快速和容錯的標準方法。
    第9章將介紹如何在C 程序中與各種外圍設備協同工作。雖然大多數設備通信API並不依賴於特定的編程語言,但我們仍將通過C 語言的強大功能編寫封裝器(這對於開發人員來說十分方便),並防止出現創建的資源洩露錯誤。
    第10章將探討編寫高效節能的應用程序,以及利用操作繫統電源管理功能的實踐方案。本章針對基於Linux的嵌入式繫統提供了多個示例,在此基礎上,相同的概念也可擴展至其他操作繫統和平臺。
    第11章介紹與時間管理相關的各種話題,如測算時間間隔、增加延時。此外,我們還將學習C Chrono標準庫提供的API,並以此構建可移植的應用程序。
    第12章將討論C 嵌入式應用程序中錯誤機制的可能實現和實踐方案,同時還將解釋如何高效地使用C 異常機制,並將該機制與其他替代方案進行比較,如傳統的錯誤代碼和復雜的返回機制。其間將涉及一些基本的容錯機制,如看門狗計時器和心跳信號。
    第13章討論實時繫統規範,主要介紹實時繫統的定義方式,以及實時繫統所包含的類型。本章通過實際案例探討了如何使應用程序的行為更具確定性,這也是實時繫統的關鍵需求。
    第14章考查什麼是安全關鍵繫統,以及安全繫統與其他嵌入式繫統之間的不同之處。本章涵蓋了開發關鍵安全繫統時所需的開發方法和工具,如編碼指南(包括MISRA、AUTOSAR或JSF)、靜態代碼分析、軟件驗證工具。
    第15章簡要介紹微處理器C 代碼的編寫、編譯和調試等概念。同時使用Arduino電路板作為示例,並討論如何設置開發環境。
    嵌入式繫統開發意味著應用程序將與某些專用硬件進行交互,如特定的SoC平臺、特定的微控制器或特定的外圍設備。因此,存在多種可能的硬件配置,以及與這些硬件設置協同工作的專用操作繫統或IDE。
    本書旨在指導讀者學習如何實現嵌入式繫統編程,但不會過多地涉及硬件內容。因此,大多數示例工作於虛擬Linux環境或模擬器中,某些示例可能需要使用真實的硬件設備。這些示例將運行於Raspberry Pi或Arduino這些廣泛使用且價格低廉的平臺上,具體內容如表1所示。
    表1
    本書涉及的軟件/硬件 操 作 繫 統
    Docker(https://www.docker.com/products/docker-desktop) ?  64位Microsoft Windows 10專業版或企業版
    ?  macOS 10.13或更新的版本
    ?  Ubuntu Linux 16.04或更新的版本
    ?  Debian Linux Stretch(9)或Buster(10)
    ?  Fedora Linux 30或更新的版本
    QEMU(https://www.qemu.org/download/) ?  Windows 8或更新的版本(32位或64位)
    ?  macOS 10.7或更新的版本
    ?  Linux(各個版本)
    Raspberry Pi 3 Model B  
    Arduino UNO R3或ELEGOO UNO R3 
    如果讀者正在閱讀本書的電子版,建議輸入代碼或通過GitHub存儲庫查看代碼,這有助於防止代碼復制、粘貼過程中出現的潛在錯誤。
    下載示例代碼文件
    讀者可訪問www.packt.com並通過個人賬戶下載本書的示例代碼文件。無論讀者在何處購買了本書,均可訪問www.packt.com/support,經注冊後我們會直接將相關文件通過電子郵件的方式發送給您。
    下載代碼文件的具體操作步驟如下。
    (1)訪問www.packt.com並注冊。
    (2)選擇Support選項卡。
    (3)單擊Code Downloads。
    (4)在Search搜索框中輸入書名。
    當文件下載完畢後,可利用下列軟件的版本解壓或析取文件夾中的內容。
    ? WinRAR/7-Zip(Windows環境)。
    ? Zipeg/iZip/UnRarX(Mac環境)。
    ? 7-Zip/PeaZip(Linux環境)。
    另外,本書的代碼包也托管於GitHub上,對應網址為https://github.com/PacktPublishing/ Embedded-Programming-with-Modern-CPP-Cookbook。若代碼被更新,現有的GitHub庫也會保持同步更新。
    讀者還可訪問https://github.com/PacktPublishing/並從對應分類中查看其他代碼包和視頻內容。
    下載彩色圖像
    我們還進一步提供了本書中截圖/圖表的彩色圖像,讀者可訪問https://static.packt-cdn. com/downloads/9781838821043_ColorImages.pdf進行查看。
     圖標表示警告或重要的注意事項。
     圖標表示提示信息和操作技巧。
     
    讀者反饋和客戶支持
    歡迎讀者對本書提出建議或意見並予以反饋。
    對此,讀者可向customercare@packtpub.com發送郵件,並以書名作為郵件標題。
    勘誤表
    盡管我們希望將本書做到盡善盡美,但疏漏依然在所難免。如果讀者發現謬誤,無論是文字錯誤或是代碼錯誤,還望不吝賜教。對此,讀者可訪問http://www.packtpub.com/ submit-errata,選取對應書籍,輸入並提交相關問題的詳細內容。
    版權須知
    一直以來,互聯網上的版權問題從未間斷,Packt出版社對此類問題異常重視。若讀者在互聯網上發現本書任意形式的副本,請告知我們網絡地址或網站名稱,我們將對此予以處理。關於盜版問題,讀者可發送郵件至copyright@packtpub.com。
    若讀者針對某項技術具有專家級的見解,抑或計劃撰寫書籍或完善某部著作的出版工作,可訪問authors.packtpub.com。
    問題解答
    若讀者對本書有任何疑問,可發送郵件至questions@packtpub.com,我們將竭誠為您服務。

















     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部