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

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

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

定 價:¥108.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號