注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件工程及軟件方法學專業(yè)嵌入式軟件開發(fā):全面走向高質高效編程

專業(yè)嵌入式軟件開發(fā):全面走向高質高效編程

專業(yè)嵌入式軟件開發(fā):全面走向高質高效編程

定 價:¥108.00

作 者: 李云 著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 生產與運作管理

購買這本書可以去


ISBN: 9787121147838 出版時間: 2012-01-01 包裝: 平裝
開本: 16開 頁數: 620 字數:  

內容簡介

  本書分為6篇。硬件篇就嵌入式軟件開發(fā)所需掌握的處理器概念進行了介紹。工具篇對make、gcc編譯器、bintuils工具集、ld鏈接器和gdb調試器進行了講解,其中對make這一嵌入式開發(fā)環(huán)境的全能管家進行了精辟的介紹,致力于幫助讀者成為Makefile方面的專家。編程語言篇致力于讓讀者更深入地理解C編程語言。操作系統(tǒng)篇通過循序漸進的方式介紹ClearRTOS的設計與實現(xiàn),使得讀者能透徹地理解操作系統(tǒng)的關鍵概念和實現(xiàn)原理。設計篇和質量保證篇通過實踐的方式逐步展開講解,以幫助讀者獲得一些實用的設計原則、最佳實踐和一套有效的質量保證方法論。本書適合嵌入式軟件開發(fā)領域的新手和在工作中碰到瓶頸的老手閱讀。閱讀本書要求讀者已掌握C編程語言和基本的UML知識。

作者簡介

  李云,現(xiàn)任諾基亞西門子網絡技術有限公司軟件架構師。2年電氣和電子開發(fā)工作經驗,自1999年至今從事軟件開發(fā)工作曾在浙江大立科技有限公司、UT斯達康杭州研發(fā)中心、摩托羅拉杭州研發(fā)中心擔任軟件工程師、項目負責人和軟件架構師等職早在2000年開始從事嵌入式軟件開發(fā)工作,內容主要包括:操作系統(tǒng)內核、文件系統(tǒng)和IP協(xié)議棧的移植,IDE硬盤、以太網芯片和PCI總線等外設的驅動開發(fā)熟悉x86、PowerPC、XScale處理器,以及TIDSP源碼級熟悉uC/OS、RTEMS和VxWorks實時操作系統(tǒng)的實現(xiàn),并在這些操作系統(tǒng)和Linux操作系統(tǒng)上有著豐富的軟件開發(fā)經驗。

圖書目錄

硬件篇
 第1章 處理器的基本概念 
  1.1 區(qū)分微處理器與微控制器 
  1.2 寄存器 
  1.3 處理器是如何啟動的 
  1.4 輸入與輸出 
  1.5 指令與數據 
  1.6 中斷 
  1.7 字節(jié)序 
  1.8 邊界對齊 
  1.9 程序斷點和數據斷點 
  1.10 內存管理單元 
  1.11 緩存 
  1.12 小結 
 第2章 開發(fā)活動中的硬件問題 
  2.1 兩個案例 
  2.2 案例的背后——信號完整性 
  2.3 應對方法 
  2.4 小結 
工具篇
 第3章 make,開發(fā)環(huán)境全能管家 
  3.1 從最簡單的Makefile中了解規(guī)則 
  3.2 創(chuàng)建基本的編譯環(huán)境 
  3.2.1 將規(guī)則運用于程序編譯 
  3.2.2 讓Makefile更專業(yè) 
  3.3 提高編譯環(huán)境的實用性 
  3.3.1 讓編譯環(huán)境更加有序 
  3.3.2 提升依賴關系管理 
  3.4 打造更專業(yè)的編譯環(huán)境 
  3.4.1 規(guī)劃項目目錄結構 
  3.4.2 增進復用性 
  3.4.3 支持頭文件目錄的指定 
  3.4.4 實現(xiàn)庫鏈接 
  3.4.5 增強可使用性 
  3.4.6 管理對庫的依賴關系 
  3.4.7 改善編譯效率 
  3.4.8 恰當地書寫注釋 
  3.5 理解make的解析行為 
  3.6 Makefile的調試 
  3.7 make的常用選項 
  3.8 活用make 
  3.9 小結 
 第4章 gcc,C語言編譯器 
  4.1 什么是交叉編譯器 
  4.2 gcc幕后工作揭示 
  4.3 實用的gcc選項 
  4.3.1 解決宏錯誤的好幫手 
  4.3.2 輔助編寫匯編程序的好方法 
  4.3.3 獲取系統(tǒng)頭文件路徑 
  4.3.4 產生映射文件 
  4.3.5 通過選項定義宏 
  4.3.6 生成依賴關系 
  4.3.7 指定鏈接庫 
 第5章 binutils工具集,軟件開發(fā)利器 
  5.1 addr2line,指令地址翻譯器 
  5.2 ar,靜態(tài)庫生成器 
  5.3 nm,符號顯示器 
  5.4 objdump,信息查看器 
  5.5 objcopy,段剪輯器 
  5.6 ranlib,庫索引生成器 
  5.7 size,段大小觀察器 
  5.8 strings,字符串窺視器 
  5.9 strip,程序文件瘦身器 
 第6章 ld,鏈接器 
  6.1 重定位的概念 
  6.2 鏈接腳本 
  6.2.1 段 
  6.2.2 符號 
  6.2.3 存儲區(qū)域 
  6.2.4 常用命令 
  6.3 常用選項 
  6.3.1 指定程序的入口點 
  6.3.2 生成可重定位的中間文件 
  6.3.3 指定鏈接腳本 
  練習與思考 
 第7章 gdb,程序調試助手 
  7.1 啟動和退出gdb 
  7.2 獲取幫助 
  7.3 調試程序 
  7.3.1 斷點設置 
  7.3.2 控制程序運行 
  7.3.3 檢查程序 
  7.3.4 提高調試效率 
  7.4 查看符號表 
  7.5 控制gdb的行為 
編程語言篇
 第8章 掌握必要的匯編知識 
  8.1 as的語法 
  8.1.1 宏 
  8.1.2 匯編命令 
  8.1.3 符號和標簽 
  8.1.4 匯編指令 
  8.2 嵌入匯編的語法 
 第9章 深入理解程序的結構 
  9.1 段 
  9.1.1 指令段 
  9.1.2 數據段 
  9.2 棧 
  9.3 堆 
  9.4 小結 
 第10章 ABI/EABI規(guī)范,締造程序兼容合約 
  10.1 定義基本數據類型 
  10.2 規(guī)范字節(jié)對齊處理 
  10.3 分配寄存器的功能 
  10.4 規(guī)定棧幀結構 
  10.4.1 棧幀的含義和作用 
  10.4.2 函數參數的傳遞方法 
  10.4.3 函數返回值的返回方法 
  10.5 小結 
  練習與思考 
 第11章 混淆指針與數組所導致的問題 
  11.1 問題示例 
  11.2 問題分析 
  11.2.1 數組的內存模型 
  11.2.2 指針的內存模型 
  11.3 問題成因 
  11.4 預防措施 
  11.5 小結 
 第12章 volatile,讓我保持原樣 
設計篇
 第13章 設計,軟件質量之本 
  13.1 軟件設計是什么 
  13.2 軟件質量的概念 
  13.3 阻礙改善設計的常見觀念 
  13.3.1 測試是替罪羊或救命稻草 
  13.3.2 資源永遠不足 
  13.3.3 不改變就可以規(guī)避風險 
  13.4 如何提高設計能力 
  13.5 設計模式、設計原則和設計思想 
  13.6 放之四海皆適用的設計原則 
  13.6.1 以人為本 
  13.6.2 追求簡單性 
  13.6.3 讓模塊善始善終 
  13.6.4 重視收集統(tǒng)計信息 
  13.6.5 借助命名傳達設計意圖 
  13.6.6 消除“審美告警” 
  13.6.7 通過機制解決問題 
  13.6.8 防止他人犯錯 
  13.6.9 考慮可查錯性 
  13.7 小結 
 第14章 模塊管理,保障系統(tǒng)有序運行 
  14.1 管理參照系 
  14.2 設計思路 
  14.3 程序實現(xiàn) 
  14.3.1 引入模塊標識 
  14.3.2 實現(xiàn)層與級的表達 
  14.3.3 系統(tǒng)狀態(tài)和回調函數原型定義 
  14.3.4 模塊注冊 
  14.3.5 系統(tǒng)啟動 
  14.3.6 系統(tǒng)關閉 
  14.4 module示例程序 
  14.5 模塊管理的一些思考 
  14.6 小結 
  練習與思考 
 第15章 錯誤管理,不可或缺的用戶需求 
  15.1 表達錯誤的通用方法 
  15.1.1 錯誤碼格式 
  15.1.2 定義方法 
  15.1.3 使用示例 
  15.1.4 提高可使用性 
  15.1.5 定義和使用錯誤碼的準則 
  15.2 優(yōu)化錯誤日志的輸出 
  15.2.1 傳統(tǒng)方法 
  15.2.2 更有效的方法 
  15.3 平臺和框架層的錯誤處理 
  15.4 小結 
 第16章 目錄結構管理,使項目進展更順利 
  16.1 規(guī)劃目錄結構的意義 
  16.1.1 書架功能 
  16.1.2 意識引導 
  16.1.3 加速新手上手 
  16.2 出色目錄結構的特點 
  16.3 一個示例 
  16.4 小結 
 第17章 平臺與框架開發(fā),高質量軟件打造之路 
  17.1 區(qū)分系統(tǒng)庫、平臺和框架 
  17.1.1 系統(tǒng)庫 
  17.1.2 平臺 
  17.1.3 框架 
  17.2 本質和優(yōu)點 
  17.3 確立架構模型 
  17.4 小結 
 第18章 可開發(fā)性設計,一種高效且經濟的開發(fā)模式 
  18.1 可開發(fā)性問題一瞥 
  18.2 可開發(fā)性設計的內涵 
  18.3 引入設備抽象層 
  18.4 更復雜的設備抽象層 
  18.5 圖形界面的可開發(fā)性設計 
  18.5.1 增強設備抽象層 
  18.5.2 提供可視化編輯環(huán)境 
  18.6 其他可開發(fā)性設計 
  18.7 小結 
操作系統(tǒng)篇
 第19章 引導加載器,系統(tǒng)啟航者 
  19.1 功能 
  19.2 文件存儲布局 
  19.3 程序加載原理 
  19.4 優(yōu)點 
  19.5 小結 
  練習與思考 
 第20章 任務,軟件基本調度單元 
  20.1 任務情景 
  20.1.1 情景內容 
  20.1.2 情景保存 
  20.1.3 情景恢復 
  20.1.4 情景切換 
  20.2 任務調度 
  20.2.1 調度算法 
  20.2.2 調度器 
  20.3 任務的生命周期 
  20.4 任務控制 
  20.4.1 任務創(chuàng)建 
  20.4.2 任務啟動 
  20.4.3 任務刪除 
  20.4.4 任務掛起 
  20.4.5 任務恢復 
  20.4.6 任務睡眠 
  20.5 競爭問題與中斷控制 
  20.5.1 競爭問題的產生 
  20.5.2 通過中斷控制解決競爭問題 
  20.5.3 中斷控制的嵌套問題 
  20.6 任務與中斷狀態(tài) 
  20.7 任務棧溢出檢測 
  20.8 滴答與空閑任務 
  20.9 多任務環(huán)境控制 
  20.10 任務模塊管理 
  20.11 taskv1示例程序 
  20.12 任務鉤子函數 
  20.13 任務變量 
  20.13.1 taskv2示例程序 
  20.13.2 原理 
  20.13.3 實現(xiàn) 
  20.14 其他概念與思考 
  20.14.1 搶占式任務與實時系統(tǒng)的關系 
  20.14.2 影響任務切換效率的因素 
  20.14.3 避免直接刪除任務 
  20.14.4 小心多任務設計被濫用 
  20.15 小結 
  練習與思考 
 第21章 任務同步與通信,實現(xiàn)協(xié)同工作 
  21.1 信號量 
  21.1.1 應用場合 
  21.1.2 程序實現(xiàn) 
  21.1.3 semaphore示例程序 
  21.2 互斥鎖 
  21.2.1 應用場合 
  21.2.2 程序實現(xiàn) 
  21.2.3 mutex示例程序 
  21.2.4 優(yōu)先級反轉與繼承 
  21.2.5 遞歸鎖 
  21.3 事件 
  21.3.1 應用場合 
  21.3.2 程序實現(xiàn) 
  21.3.3 event示例程序 
  21.4 消息隊列 
  21.4.1 應用場合 
  21.4.2 程序實現(xiàn) 
  21.4.3 實現(xiàn)消息隊列 
  21.4.4 queue示例程序 
  21.4.5 使用指南 
  21.5 死鎖及預防 
  21.6 小結 
  練習與思考 
 第22章 內存管理,協(xié)調動態(tài)內存的使用 
  22.1 堆管理 
  22.1.1 heapv1示例程序 
  22.1.2 程序實現(xiàn) 
  22.1.3 設計改進 
  22.1.4 支持內存泄漏檢測 
  22.1.5 實現(xiàn)內存溢出檢測 
  22.1.6 內存碎片問題 
  22.2 內存池管理 
  22.2.1 mpool示例程序 
  22.2.2 程序實現(xiàn) 
  22.2.3 緩沖區(qū)泄漏檢測 
  22.3 小結 
  練習與思考 
 第23章 設備管理,方便與外設交互 
  23.1 字符設備管理 
  23.2 中斷管理 
  23.2.1 中斷向量表 
  23.2.2 中斷控制 
  23.2.3 中斷狀態(tài)管理 
  23.2.4 設備與中斷 
  23.2.5 模塊管理 
  23.3 實現(xiàn)設備管理 
  23.3.1 安裝驅動程序 
  23.3.2 注冊設備 
  23.3.3 打開設備 
  23.3.4 關閉設備 
  23.3.5 設備讀寫與控制 
  23.4 設備驅動程序實現(xiàn) 
  23.4.1 “滴答”設備 
  23.4.2 控制臺設備 
  23.4.3 終止程序運行設備 
  23.5 驅動安裝與設備注冊 
  23.6 小結 
  練習與思考 
 第24章 定時器,程序鬧鐘 
  24.1 軟件定時器分類 
  24.2 設計思路 
  24.3 中斷回調定時器 
  24.3.1 程序實現(xiàn) 
  24.3.2 timerv1示例程序 
  24.4 定時誤差 
  24.5 提高遍歷效率 
  24.6 改善實時性 
  24.6.1 實時性分析 
  24.6.2 改進實時性 
  24.7 任務回調定時器 
  24.7.1 程序實現(xiàn) 
  24.7.2 timerv3示例程序 
  24.8 小結 
  練習與思考 
 第25章 ClearRTOS“實時”操作系統(tǒng) 
  25.1 設計原則 
  25.2 源程序目錄管理 
  25.3 讓Makefile體現(xiàn)概念 
  25.4 實現(xiàn)集中配置 
  25.5 改進與移植 
質量保證篇
 第26章 質量保證導言 
  26.1 軟件開發(fā)的特點 
  26.1.1 腦力密集型工作 
  26.1.2 實現(xiàn)不具唯一性 
  26.1.3 隱性成本高 
  26.1.4 忽視的細節(jié)很容易被放大 
  26.1.5 質量難以評估 
  26.2 保證質量的關鍵要素 
  26.2.1 完備的需求分析 
  26.2.2 高質量的設計 
  26.2.3 編程好習慣 
  26.2.4 充分的驗證 
  26.2.5 必要的流程 
  26.2.6 合適的工具 
  26.2.7 言簡意賅的文檔 
  26.3 質量保證需要系統(tǒng)性的方法論 
  26.3.1 方法論=流程+工具 
  26.3.2 構建有效方法論的核心手段 
  26.4 走出質量困境的指導性思想 
  26.4.1 從管理者的角度 
  26.4.2 從工程師的角度 
  26.4.3 從組織的角度 
  26.5 小結 
 第27章 編程好習慣,質量保證的基本條件 
  27.1 終生受用的編程好習慣 
  27.1.1 判斷失敗而非成功 
  27.1.2 采用sizeof減少內存操作失誤 
  27.1.3 屏蔽編程語言特性 
  27.1.4 恰當使用gto語句 
  27.1.5 合理運用數組 
  27.1.6 以逆序方式釋放資源 
  27.1.7 在模塊對外接口中防范錯誤 
  27.1.8 避免出現(xiàn)魔數 
  27.1.9 利用編程語言特性提高效率 
  27.1.10 復用代碼提高維護性 
  27.1.11 借助隱式初始化簡化程序邏輯 
  27.1.12 青睞小粒度鎖 
  27.1.13 精確包含頭文件 
  27.1.14 讓模塊的對外頭文件保持簡潔 
  27.1.15 只暴露必要的變量和函數 
  27.1.16 清除編譯器報告的所有警告 
  27.2 小結 
 第28章 單元測試,被忽視的質量保證方法 
  28.1 警惕單元測試無用論 
  28.2 一個簡單但不完善的單元測試例子 
  28.3 構建單元測試框架 
  28.4 無縫整合單元測試 
  28.4.1 維護規(guī)則 
  28.4.2 目錄規(guī)劃 
  28.4.3 更改Makefile 
  28.4.4 檢查整合效果 
  28.5 幾個實施問題 
  28.6 樁函數和打樁 
  28.7 錯誤注入,一種可測試性設計 
  28.8 平臺開發(fā)與單元測試 
  28.9 被測行為的確定性 
  28.10 測試用例的有效性 
  28.11 小結 
 第29章 代碼覆蓋,單元測試效果的衡量指標 
  29.1 了解代碼覆蓋工具 
  29.2 無縫整合代碼覆蓋 
  29.2.1 更改Makefile 
  29.2.2 檢查整合效果 
  29.3 三個代碼覆蓋程度指標 
  29.4 小結 
 第30章 靜態(tài)分析,防止將失誤帶給用戶 
  30.1 認識靜態(tài)分析工具 
  30.2 無縫整合靜態(tài)分析 
  30.2.1 更改Makefile 
  30.2.2 檢查整合效果 
  30.3 小結 
 第31章 動態(tài)分析,使程序更健壯 
  31.1 結識動態(tài)分析工具 
  31.2 無縫整合動態(tài)分析 
  31.2.1 更改Makefile 
  31.2.2 檢查整合效果 
  31.3 小結 
 第32章 性能分析,讓優(yōu)化程序有的放矢 
  32.1 初探性能分析工具 
  32.2 無縫整合性能分析 
  32.2.1 更改Makefile 
  32.2.2 檢查整合效果 
  32.3 小結 
 第33章 qBench,一個開發(fā)高質軟件的工作臺 
參考資料

本目錄推薦

掃描二維碼
Copyright ? 讀書網 hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號