內容簡介
《嵌入式系統開發之道:菜鳥成長日誌與項目經理的私房菜》用平易樸實的語言,以一個完整的嵌入式系統的開發流程為架構,通過一位“菜鳥”工程師與項目經理的詼諧對話,故事性地帶出嵌入式系統概念及開發要素,並點出要成為一名稱職的嵌入式系統工程師,在實際工作中所必須具備的各項知識及技能。
《嵌入式系統開發之道:菜鳥成長日誌與項目經理的私房菜》可以分為三大部分:第1、3、4、17、18、19章和附錄D為嵌入式系統概論與開發流程;第2、15、16章和附錄A介紹了嵌入式系統項目管理與軟體工程方面的知識;第5~14章,以及附錄B、附錄C介紹了嵌入式系統的開發技術。
《嵌入式系統開發之道:菜鳥成長日誌與項目經理的私房菜》不僅可以作為致力於嵌入式系統開發初學者的入門教程,也可以作為從事嵌入式系統開發的項目經理、技術團隊主管等不可不讀的參考書。
目錄
第1章 系統·嵌入·硬體
01-01 Welcome on board!
01-02 嵌入式系統開發團隊
01-03 老調重彈:何謂嵌入式系統?
01-04 限制!限制!限制!
01-05 基本職能:老鳥也曾是菜鳥
01-06 工作內容:做個工程師,而非程式工人
第2章 嵌入式項目管理
02-01 菜鳥啊!要立大志!
02-02 項目管理基本概念
02-03 項目生命周期五大階段
02-04 項目範圍(Scope)管理
02-05 項目進度(Time/Schedule)管理
02-06 項目成本(Cost)管理
02-07 項目質量(Quality)管理
02-08 項目人力資源(Human Resource)管理
02-09 項目溝通(Communication)管理
02-10 項目風險(Risk)管理
02-11 項目採購/契約管理
02-12 項目配置(Configuration)管理
02-13 企業與組織對項目的影響
第3章 嵌入式系統開發項目生命周期:項目啟動與規劃
03-01 嵌入式系統項目簡介
03-02 初期規劃:是否該接這個項目?
03-03 進度規劃:ASAP?
03-04 規格規劃:請接受這個不完美的世界
03-05 人力規劃:營級組織、連級人力
03-06 成本規劃:一切都是為了Cost Down
03-07 質量策略規劃
第4章 嵌入式系統開發項目生命周期:設計、執行與結項
04-01 動手之前:確定項目的執行原則
04-02 設計階段:擬定作戰計畫
04-03 產品規格設計
04-04 硬體設計
04-05 系統設計
04-06 測試計畫設計
04-07 風險評估
04-08 設計檔案的重要性
04-09 開始實作之前:設計審查
04-10 實作階段:執行所有設計
04-11 衝突不斷:協同作戰有多難?
04-12 產品化
04-13 無間道:項目可有close的一天?
第5章 實作你的第一個嵌入式系統
05-01 嵌入式系統的開發環境
05-02 無痛起步:善用Sample Code
05-03 如何確定程式有執行?
05-04 標準C庫函式可以用嗎?
05-05 總結
第6章 實作嵌入式系統平台
06-01 系統與平台
06-02 系統架構設計
06-03 API與程式風格設計
06-04 嵌入式作業系統:OS在哪裡?
06-05 模擬器
06-06 Source Tree設計與程式風格典範
06-07 SDK
06-08 系統架構設計實例分析
第7章 構建良好的嵌入式系統開發環境
07-01 開發工具
07-02 makefile & 批處理檔案(.BAT)
07-03 Link Script
07-04 ROM Maker
07-05 Offline Tools概論
07-06 下載與執行
07-07 版本控制Server
07-08 說故事時間
第8章 上電之後:Boot Loader
08-01 第一行程式
08-02 基本硬體測試
08-03 載入程式段與數據初始化
08-04 案例研究
第9章 驅動程式
09-01 莫恐懼!
09-02 準備工作
09-03 控制CPU
09-04 存儲器
09-05 控制其他晶片
09-06 ISR寫作注意事項
09-07 驅動程式調試
09-08 結論
第10章 設計硬體抽象層
10-01 由eCos & Android的系統架構談起
10-02 HAL vs. BSP
10-03 為什麼會需要HAL?
10-04 HAL是否會增加開發的難度?
10-05 HAL實例
第11章 菜鳥當自強:軟體工程師硬起來
11-01 硬體開發流程
11-02 捲起袖子用烙鐵
11-03 善用測量儀器
第12章 做好存儲器管理
12-01 動態存儲器空間配置
12-02 Stack
12-03 Heap:動態存儲器配置
12-04 燒錄器
12-05 突破物理存儲器大小的限制
第13章 存儲器管理(II):NAND Flash概論
13-01 NAND簡介
13-02 控制NAND Flash
13-03 Bad Block管理
13-04 ECC(Error Correcting Code)
13-05 平均讀寫機制
13-06 NAND Flash燒錄器:特殊燒錄格式
第14章 模擬器
14-01 模擬器概論
14-02 Emulator vs Simulator
14-03 模擬器對項目開發的貢獻
14-04 實戰篇
第15章 項目進度追蹤實務
15-01 進度追蹤與變更控制流程
15-02 進度追蹤工具
15-03 總結:“便宜”可行的項目追蹤工具組合
第16章 SoC設計公司中嵌入式系統團隊的管理
16-01 SA(System Application)團隊簡介
16-02 SoC設計公司到底葫蘆里是賣什麼藥?
16-03 正確的SoC設計流程
16-04 SA的嚴酷考驗
16-05 SA團隊的管理
第17章 系統整合
17-01 第一次整合
17-02 全功能整合
17-03 發行第一個版本
第18章 Testing、Debugging與Tuning
18-01 測試
18-02 Bug Sheet管理
18-03 Debug基本技法
18-04 Tuning
第19章 結項前的煎熬
19-01 版本發行:兵荒馬亂的日子
19-02 自動測試程式
19-03 決定量產版本
19-04 出貨≠結項
19-05 項目結項
19-06 期許下一個項目
19-07 總結
附錄A 未執行項目管理的項目
A-1 前言
A-2 說故事時間(Ⅰ)
A-3 說故事時間(Ⅱ)
A-4 結論
附錄B Callback Function
附錄C 用C來實現面向對象的概念
C-1 屬性(Attribute)
C-2 方法(Method)
C-3 對象實例(Instance)
C-4 訊息傳遞(Message Passing)
C-5 基類定義
C-6 基類的公用方法
C-7 對象類型判斷範例
C-8 繼承(Inheritance)
C-9 多態性(Polymorphism)
附錄D 電子產品設計的最終依據:用戶體驗
D-1 界面設計vs用戶體驗
D-2 用戶體驗&可用性(Usability)
D-3 客戶性格(Persona)
D-4 結論
作者簡介
邱毅凌(Ealin Chiu),台灣成功大學工程科學研究所計算機專業碩士,因畢業論文為“分散式面向對象作業系統的實作”,從此便與系統底層結下不解之緣。畢業後進入“資策會”,開發了生平第二個作業系統,並任項目經理,開始電子產品開發項目管理的工作。
之後赴深圳網京科技有限公司帶領研發團隊,技術方向為信息家電(IA),2001年任職於台北市的Canon研發中心,期間除了負責系統開發與研發人員管理外,還主持大陸、台灣地區、美國、日本、韓國等研發單位的共同開發項目。
2007年,加入某上市IC設計公司,擔任SA團隊的部門經理,順利引入項目管理與軟體工程的研發流程,並改善了質量系統,提高了開發效率。
專長:作業系統實踐、嵌入式系統開發與項目管理
著作:《現代嵌入式系統開發專案實務》