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