《嵌入式軟件開發(fā)》從教學的角度出發(fā),講解嵌入式軟件開發(fā)的基本知識、方法和技術,使讀者了解嵌入式軟件的組成要素與結(jié)構,掌握嵌入式軟件開發(fā)的思想和方法,掌握嵌入式軟件開發(fā)的過程和技巧,熟練使用相關嵌入式軟件開發(fā)工具,具備初步分析問題和解決問題的能力。內(nèi)容包括:嵌入式軟件開發(fā)概述,嵌入式軟件開發(fā)環(huán)境,嵌入式軟件編程,嵌入式軟件調(diào)試,BootLoader程序設計,嵌入式系統(tǒng)級軟件設計(包含嵌入式操作系統(tǒng)內(nèi)核設計、嵌入式文件系統(tǒng)設計、嵌入式驅(qū)動程序設計和嵌入式數(shù)據(jù)庫設計),嵌入式GUI及應用程序設計,嵌入式程序代碼優(yōu)化,嵌入式軟件測試,以及嵌入式應用程序創(chuàng)新設計。 《嵌入式軟件開發(fā)》兼顧教學、科研和工程開發(fā)的需要,對于廣大高等學校高年級學生和研究生而言,是一本學習嵌入式軟件開發(fā)的教科書;對于從事嵌入式軟件開發(fā)的工程技術人員來說,則是一本實用的參考書。
第1章 嵌入式軟件開發(fā)概述
1.1 嵌入式系統(tǒng)概述
1.1.1 嵌入式系統(tǒng)的歷史與現(xiàn)狀
1.1.2 嵌入式系統(tǒng)的特點
1.1.3 應用領域和發(fā)展方向
1.2 嵌入式軟件的組成與特點
1.2.1 嵌入式軟件體系結(jié)構
1.2.2 嵌入式軟件分類
1.2.3 嵌入式軟件的基本特點
1.3 嵌入式軟件的發(fā)展趨勢
1.3.1 技術發(fā)展趨勢
1.3.2 市場發(fā)展趨勢
1.4 嵌入式軟件開發(fā)流程
1.4.1 嵌入式軟件開發(fā)流程概述
1.4.2 嵌入式軟件的開發(fā)步驟
1.5 嵌入式軟件的開發(fā)管理
1.5.1 組織管理
1.5.2 質(zhì)量管理
1.5.3 配置管理
1.5.4 文檔管理
1.6 實驗1:建立開發(fā)團隊和制定管理規(guī)范
1.7 小結(jié)與進一步探索
1.7.1 小結(jié)
1.7.2 進一步探索
第2章 嵌入式軟件開發(fā)環(huán)境
2.1 嵌入式軟件開發(fā)模式
2.1.1 嵌入式軟件開發(fā)特點
2.1.2 嵌入式軟件開發(fā)模式概述
2.2 宿主機環(huán)境
2.2.1 串口終端
2.2.2 BOOTP協(xié)議
2.2.3 TFTP協(xié)議
2.2.4 交叉編譯
2.3 目標機環(huán)境
2.3.1 JrFAG接口簡介
2.3.2 Boot Loader簡介
2.4 交叉編譯工具鏈
2.4.1 交叉編譯工具鏈的構建
2.4.2 相關工具介紹
2.5 實驗2:開發(fā)環(huán)境構建
2.6 小結(jié)與進一步探索
2.6.1 小結(jié)
2.6.2 進一步探索
第3章 嵌入式軟件編程
3.1 嵌入式編程基礎
3.1.1 嵌入式匯編語言基礎
3.1.2 嵌入式高級編程知識
3.1.3 嵌入式開發(fā)工程
3.2 嵌入式匯編編程技術
3.2.1 基本語法
3.2.2 匯編語言程序設計案例
3.3 嵌入式高級編程技術
3.3.1 函數(shù)可重入
3.3.2 中斷處理過程
3.4 高級語言與匯編語言混合編程
3.4.1 高級語言與匯編語言混合編程概述
3.4.2 匯編語言程序調(diào)用C語言程序
3.4.3 C語言程序調(diào)用匯編程序
3.5 實驗3:嵌入式軟件編程技術
3.6 小結(jié)與進一步探索
3.6.1 小結(jié)
3.6.2 進一步探索
第4章 嵌入式軟件調(diào)試
4.1 GDB調(diào)試器
4.1.1 GDB簡介
4.1.2 GDB使用方法
4.2 遠程調(diào)試
4.2.1 遠程調(diào)試原理
4.2.2 GDB遠程調(diào)試
4.2.3 使用gdbserver
4.3 內(nèi)核調(diào)試
4.3.1 內(nèi)核調(diào)試技術
4.3.2 KGDB內(nèi)核調(diào)試
4.4 網(wǎng)絡調(diào)試
4.4.1 socket編程簡介
4.4.2 網(wǎng)絡調(diào)試工具tcpdump
4.5 典型嵌入式集成開發(fā)環(huán)境
4.5.1 CCS簡介
4.5.2 項目構建
4.5.3 調(diào)試工具
4.6 實驗4:調(diào)試技術演練
4.7 小結(jié)與進一步探索
4.7.1 小結(jié)
4.7.2 進一步探索
第5章 BootLoader程序設計
5.1 Boot Loader基礎知識
5.1.1 硬件環(huán)境
5.1.2 安裝地址
5.1.3 通信接口
5.1.4 啟動過程
5.1.5 操作模式
5.1.6 文件傳輸接口與協(xié)議
5.2 Boot Loader典型結(jié)構
5.2.1 階段1
5.2.2 階段2
5.2.3 串口終端
5.3 Boot Loader基本設計
5.3.1 Boot Loader設計概述
5.3.2 U-Boot代碼分析
5.4 實驗5:設計與實現(xiàn)Boot Loader
5.5 小結(jié)與進一步探索
5.5.1 小結(jié)
5.5.2 進一步探索
第6章 嵌入式系統(tǒng)級軟件設計
6.1 嵌入式操作系統(tǒng)內(nèi)核設計
6.1.1 ARM-Linux內(nèi)核簡介
6.1.2 ARM-Linux內(nèi)存管理
6.1.3 ARM-Linux進程管理和調(diào)度
6.1.4 ARM-Linux模塊機制
6.1.5 ARM-Linux中斷管理
6.1.6 ARM-Linux系統(tǒng)調(diào)用
6.1.7 ARM-Linux系統(tǒng)啟動和初始化
6.2 嵌入式文件系統(tǒng)設計
6.2.1 嵌入式文件系統(tǒng)介紹
6.2.2 嵌入式Linux文件系統(tǒng)框架
6.2.3 本地文件系統(tǒng)
6.2.4 網(wǎng)絡文件系統(tǒng)
6.2.5 根文件系統(tǒng)設計
6.3 嵌入式驅(qū)動程序設計
6.3.1 Linux驅(qū)動程序簡介
6.3.2 Linux驅(qū)動相關內(nèi)核機制
6.3.3 Linux字符設備及驅(qū)動程序設計
6.3.4 塊設備和驅(qū)動程序設計
6.3.5 網(wǎng)絡設備驅(qū)動程序開發(fā)
6.4 嵌入式數(shù)據(jù)庫設計
6.4.1 嵌入式數(shù)據(jù)庫概述
6.4.2 嵌入式數(shù)據(jù)庫體系結(jié)構
6.4.3 嵌入式數(shù)據(jù)庫基本設計
6.4.4 嵌入式數(shù)據(jù)庫應用設計
6.5 實驗6:嵌入式操作系統(tǒng)內(nèi)核與驅(qū)動程序
6.6 小結(jié)與進一步探索
6.6.1 小結(jié)
6.6.2 進一步探索
第7章 嵌入式GUI及應用程序設計
7.1 嵌入式GUI設計概述
7.1.1 嵌入式GUI簡介
7.1.2 嵌入式GUI設計需求
7.1.3 嵌入式GUI設計原則
7.1.4 主流嵌入式GUI簡介
7.2 嵌入式GuI體系結(jié)構設計
7.2.1 嵌入式GUI體系結(jié)構
7.2.2 抽象層
7.2.3 核心層
7.2.4 接口層
7.3 基于主流GUI的應用程序設計
7.3.1 MiniGUI開發(fā)環(huán)境搭建
7.3.2 基于MiniGUI的應用程序設計
7.3.3 Android開發(fā)環(huán)境搭建
7.3.4 基于Android的應用程序設計
7.4 實驗7:嵌入式GUI應用設計
7.5 小結(jié)與進一步探索
7.5.1 小結(jié)
7.5.2 進一步探索
第8章 嵌入式程序代碼優(yōu)化
8.1 嵌入式程序代碼優(yōu)化概述
8.2 提高代碼效率
8.2.1 C語言數(shù)據(jù)類型優(yōu)化
8.2.2 循環(huán)結(jié)構優(yōu)化
8.2.3 運算優(yōu)化
8.2.4 內(nèi)聯(lián)函數(shù)和內(nèi)嵌匯編優(yōu)化
8.2.5 利用硬件特性
8.2.6 其他代碼優(yōu)化技術
8.3 減少代碼尺寸
8.4 有效使用內(nèi)存
8.4.1 合理使用堆與棧
8.4.2 防止內(nèi)存泄露
8.5 降低代碼能耗
8.5.1 尋找和分析程序熱點的方法
8.5.2 熱點與性能分析工具介紹
8.5.3 代碼運行性能優(yōu)化
8.6 實驗8:嵌入式程序代碼優(yōu)化
8.7 小結(jié)與進一步探索
8.7.1 小結(jié)
8.7.2 進一步探索
第9章 嵌入式軟件測試
9.1 嵌入式軟件測試基礎
9.1.1 嵌入式軟件測試簡介
9.1.2 嵌入式軟件測試的特點
9.1.3 嵌入式軟件測試的目的與原則
9.1.4 嵌入式軟件測試技術
9.1.5 嵌入式軟件測試分類
9.2 嵌入式軟件測試技術
9.2.1 靜態(tài)測試技術
9.2.2 白盒測試技術
9.2.3 黑盒測試技術
9.3 測試與分析工具
9.3.1 概述
9.3.2 靜態(tài)測試工具
9.3.3 白盒測試工具
9.3.4 黑盒測試工具
9.3.5 測試管理工具
9.3.6 專項測試與分析工具
9.4 實驗9:嵌入式軟件測試
9.5 小結(jié)與進一步探索
9.5.1 小結(jié)
9.5.2 進一步探索
第10章 嵌入式應用程序創(chuàng)新設計
10.1 設計任務
10.2 設計過程
10.3 小結(jié)與進一步探索
10.3.1 小結(jié)
10.3.2 進一步探索
參考文獻