《普通高等教育電氣工程與自動(dòng)化(應(yīng)用型)“十二五”規(guī)劃教材:嵌入式系統(tǒng)設(shè)計(jì)》先由嵌入式系統(tǒng)基本構(gòu)成開始,介紹嵌入式系統(tǒng)硬件結(jié)構(gòu)、硬件開發(fā)平臺(tái)和嵌入式操作系統(tǒng),然后重點(diǎn)闡述嵌入式系統(tǒng)的開發(fā)方法和技術(shù),以及針對(duì)嵌入式Linux系統(tǒng)的應(yīng)用開發(fā),并結(jié)合實(shí)例詳細(xì)講述嵌入式系統(tǒng)開發(fā)環(huán)境設(shè)置、系統(tǒng)移植方法和驅(qū)動(dòng)程序的開發(fā),最后給出嵌入式系統(tǒng)工程開發(fā)實(shí)例。
《普通高等教育電氣工程與自動(dòng)化(應(yīng)用型)“十二五”規(guī)劃教材:嵌入式系統(tǒng)設(shè)計(jì)》可作為自動(dòng)化、電氣工程及其自動(dòng)化、電子信息工程、測(cè)控技術(shù)與儀器等專業(yè)的高年級(jí)本科生和研究生的參考教材,也可作為從事嵌入式系統(tǒng)設(shè)計(jì)、微控制系統(tǒng)設(shè)計(jì)和電子設(shè)計(jì)等科研人員和工程技術(shù)人員的參考讀物。
第1章 嵌入式系統(tǒng)基礎(chǔ)
1.1 嵌入式系統(tǒng)
1.1.1 嵌入式系統(tǒng)簡(jiǎn)介
1.1.2 嵌入式系統(tǒng)的組成
1.1.3 嵌入式系統(tǒng)的特點(diǎn)
1.1.4 嵌入式系統(tǒng)的分類
1.1.5 嵌入式系統(tǒng)與PC的區(qū)別
1.2 嵌入式系統(tǒng)的歷史與發(fā)展
1.2.1 嵌入式系統(tǒng)的歷史
1.2.2 嵌入式系統(tǒng)的應(yīng)用領(lǐng)域
1.2.3 嵌入式系統(tǒng)的發(fā)展趨勢(shì)
1.3 嵌入式操作系統(tǒng)
1.3.1 Android
1.3.2 Linux
前言
第1章 嵌入式系統(tǒng)基礎(chǔ)
1.1 嵌入式系統(tǒng)
1.1.1 嵌入式系統(tǒng)簡(jiǎn)介
1.1.2 嵌入式系統(tǒng)的組成
1.1.3 嵌入式系統(tǒng)的特點(diǎn)
1.1.4 嵌入式系統(tǒng)的分類
1.1.5 嵌入式系統(tǒng)與PC的區(qū)別
1.2 嵌入式系統(tǒng)的歷史與發(fā)展
1.2.1 嵌入式系統(tǒng)的歷史
1.2.2 嵌入式系統(tǒng)的應(yīng)用領(lǐng)域
1.2.3 嵌入式系統(tǒng)的發(fā)展趨勢(shì)
1.3 嵌入式操作系統(tǒng)
1.3.1 Android
1.3.2 Linux
1.3.3 μC/OS?Ⅱ
1.3.4 WindowsCE
1.3.5 VxWorks
1.3.6 PalmOS
1.4 嵌入式系統(tǒng)的選型原則
1.4.1 嵌入式處理器的選型原則
1.4.2 嵌入式操作系統(tǒng)的選型原則
本章小結(jié)
思考與練習(xí)
第2章 嵌入式系統(tǒng)的硬件結(jié)構(gòu)
2.1 嵌入式系統(tǒng)的硬件組成
2.2 ARM微處理器概述
2.2.1 ARM公司簡(jiǎn)介
2.2.2 ARM微處理器的家族
2.2.3 ARM微處理器的結(jié)構(gòu)
2.2.4 ARM微處理器核的技術(shù)特點(diǎn)
2.3 ARM的存儲(chǔ)系統(tǒng)
2.3.1 ARM的存儲(chǔ)空間
2.3.2 存儲(chǔ)器的格式
2.3.3 存儲(chǔ)器的管理
2.4 輸入/輸出設(shè)備
2.4.1 LCD顯示
2.4.2 觸摸屏
2.4.3 鍵盤
2.5 ARM的接口技術(shù)
2.5.1 并行通信接口
2.5.2 串行通信接口
2.5.3 USB接口
2.5.4 紅外線接口
2.5.5 PCMCIA和CF
2.6 總線技術(shù)
2.6.1 I2C總線
2.6.2 SPI總線
2.6.3 I2S總線
2.6.4 CAN總線
本章小結(jié)
思考與練習(xí)
第3章 基于ARM9處理器的硬件
開發(fā)平臺(tái)
3.1 ARM9處理器
3.1.1 ARM9與ARM7處理器的比較
3.1.2 ARM920T簡(jiǎn)介
3.2 三星S3C2410X處理器概述
3.2.1 S3C2410X處理器
3.2.2 S3C2410X處理器的工作原理
3.3 S3C2410X處理器單元電路的設(shè)計(jì)
3.3.1 S3C2410X處理器主要引腳的定義
3.3.2 電源和復(fù)位電路
3.3.3 晶體振蕩器電路的設(shè)計(jì)
3.3.4 串口和USB接口電路
3.4 存儲(chǔ)器的設(shè)計(jì)
3.4.1 ROM接口電路的設(shè)計(jì)
3.4.2 Flash接口電路的設(shè)計(jì)
3.4.3 SDRAM接口電路的設(shè)計(jì)
3.5 JTAG調(diào)試接口的設(shè)計(jì)
3.6 博創(chuàng)UP?NETARM2410 S嵌入式平臺(tái)簡(jiǎn)介
3.7 綜合實(shí)訓(xùn):通過JTAG燒寫Flash
本章小結(jié)
思考與練習(xí)
第4章 嵌入式操作系統(tǒng)
4.1 嵌入式操作系統(tǒng)概述
4.1.1 操作系統(tǒng)簡(jiǎn)介
4.1.2 嵌入式操作系統(tǒng)的分類
4.2 Linux操作系統(tǒng)
4.2.1 Linux簡(jiǎn)介
4.2.2 Linux的特點(diǎn)
4.2.3 Linux的組成
4.2.4 Linux的目錄和路徑
4.2.5 Linux的常用命令
4.2.6 Linux單操作系統(tǒng)的安裝
4.3 嵌入式Linux操作系統(tǒng)
4.4 虛擬機(jī)簡(jiǎn)介
4.5 綜合實(shí)訓(xùn):虛擬機(jī)的安裝和使用
本章小結(jié)
思考與練習(xí)
第5章 嵌入式開發(fā)環(huán)境的建立
5.1 嵌入式系統(tǒng)的開發(fā)模式與設(shè)計(jì)
流程
5.1.1 嵌入式系統(tǒng)的開發(fā)模式
5.1.2 嵌入式系統(tǒng)的設(shè)計(jì)流程
5.2 嵌入式Linux的開發(fā)流程
5.3 嵌入式系統(tǒng)開發(fā)環(huán)境的建立
5.3.1 建立開發(fā)環(huán)境
5.3.2 開發(fā)環(huán)境的配置
5.4 BootLoader
5.4.1 BootLoader詳解
5.4.2 vivi
5.4.3 U?Boot
5.5 Linux的根文件系統(tǒng)
5.5.1 文件系統(tǒng)概述
5.5.2 Linux根文件系統(tǒng)
5.5.3 網(wǎng)絡(luò)文件系統(tǒng)
5.6 綜合實(shí)訓(xùn):建立嵌入式軟件環(huán)境
本章小結(jié)
思考與練習(xí)
第6章 嵌入式Linux系統(tǒng)的移植
6.1 移植的概念
6.2 Linux的體系結(jié)構(gòu)
6.2.1 Linux內(nèi)核的結(jié)構(gòu)
6.2.2 Linux內(nèi)核的配置
6.3 Linux內(nèi)核的編譯與移植
6.3.1 安裝交叉編譯工具
6.3.2 修改Makefile文件
6.3.3 設(shè)置Flash分區(qū)
6.3.4 添加對(duì)Yaffs文件系統(tǒng)的支持
6.3.5 Linux內(nèi)核的配置、編譯與移植
6.4 綜合實(shí)訓(xùn):Linux內(nèi)核的編譯與移植實(shí)驗(yàn)
6.4.1 實(shí)驗(yàn)?zāi)康?/p>
6.4.2 基礎(chǔ)知識(shí)
6.4.3 實(shí)驗(yàn)設(shè)備
6.4.4 實(shí)驗(yàn)內(nèi)容
6.4.5 實(shí)驗(yàn)步驟
本章小結(jié)
思考與練習(xí)
第7章 嵌入式Linux應(yīng)用程序的開發(fā)
與調(diào)試
7.1 開發(fā)的環(huán)境與工具
7.1.1 交叉編譯
7.1.2 gcc編譯器
7.1.3 gdb調(diào)試器
7.1.4 Vi編輯器的使用
7.1.5 Makefile文件和make命令
7.2 Linux下的C語言編程
7.2.1 嵌入式C語言程序設(shè)計(jì)
7.2.2 程序的編譯與下載
7.3 嵌入式系統(tǒng)的開發(fā)軟件與調(diào)試工具
7.3.1 嵌入式系統(tǒng)調(diào)試方法概述
7.3.2 常用調(diào)試方式
7.3.3 ADS集成開發(fā)環(huán)境的使用
7.3.4 用AXD進(jìn)行代碼調(diào)試
7.4 ARM仿真器
7.4.1 UArmJtag的JTAG在線仿真調(diào)試
7.4.2 UP?ICE200仿真器的使用
本章小結(jié)
思考與練習(xí)
第8章 設(shè)備驅(qū)動(dòng)程序的開發(fā)
8.1 設(shè)備驅(qū)動(dòng)概述
8.1.1 驅(qū)動(dòng)程序和應(yīng)用程序的區(qū)別
8.1.2 Linux的設(shè)備管理
8.2 設(shè)備驅(qū)動(dòng)程序的開發(fā)過程
8.2.1 字符設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)
8.2.2 塊設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)
8.2.3 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)
8.2.4 驅(qū)動(dòng)程序的注冊(cè)
8.2.5 設(shè)備驅(qū)動(dòng)程序的編譯
8.2.6 驅(qū)動(dòng)程序的加載
8.2.7 驅(qū)動(dòng)程序的調(diào)用
8.3 驅(qū)動(dòng)程序開發(fā)的常見問題
8.4 綜合實(shí)訓(xùn):直流電動(dòng)機(jī)驅(qū)動(dòng)程序的設(shè)計(jì)
本章小結(jié)
思考與練習(xí)
第9章 嵌入式圖形用戶界面編程
9.1 嵌入式系統(tǒng)GUI簡(jiǎn)介
9.1.1 MiniGUI
9.1.2 Microwindows/Nano?X
9.1.3 OpenGUI
9.1.4 Qt/Embedded
9.1.5 幾種常見嵌入式GUI的對(duì)比
9.2 基于Qt的嵌入式GUI應(yīng)用開發(fā)
9.2.1 Qt概述
9.2.2 Qt的信號(hào)與槽機(jī)制
9.2.3 Qt圖形設(shè)計(jì)器
9.2.4 Qt的開發(fā)流程
9.2.5 建立Qt/Embedded開發(fā)環(huán)境
9.3 綜合實(shí)訓(xùn):Qt/Embedded的編程實(shí)例
9.3.1 基于PC的Qt程序
9.3.2 發(fā)布Qt/Embedded程序到目標(biāo)機(jī)
開發(fā)板
本章小結(jié)
思考與練習(xí)
第10章 嵌入式系統(tǒng)的工程開發(fā)實(shí)例
10.1 基于ARM的可燃?xì)怏w報(bào)警系統(tǒng)
10.1.1 系統(tǒng)設(shè)計(jì)概述
10.1.2 硬件電路的設(shè)計(jì)
10.1.3 驅(qū)動(dòng)程序的設(shè)計(jì)
10.1.4 應(yīng)用程序的設(shè)計(jì)
10.2 CAN總線應(yīng)用實(shí)例
10.2.1 CAN總線概述
10.2.2 CAN智能節(jié)點(diǎn)的設(shè)計(jì)
10.2.3 CAN接口電路的設(shè)計(jì)
10.2.4 報(bào)文的發(fā)送與接收
10.2.5 SPI接口
10.2.6 CAN總線波特率的設(shè)置
10.2.7 CAN總線驅(qū)動(dòng)程序
10.2.8 CAN應(yīng)用程序
本章小結(jié)
思考與練習(xí)
參考文獻(xiàn)
前言
第1章 嵌入式系統(tǒng)基礎(chǔ)
1.1 嵌入式系統(tǒng)
1.1.1 嵌入式系統(tǒng)簡(jiǎn)介
1.1.2 嵌入式系統(tǒng)的組成
1.1.3 嵌入式系統(tǒng)的特點(diǎn)
1.1.4 嵌入式系統(tǒng)的分類
1.1.5 嵌入式系統(tǒng)與PC的區(qū)別
1.2 嵌入式系統(tǒng)的歷史與發(fā)展
1.2.1 嵌入式系統(tǒng)的歷史
1.2.2 嵌入式系統(tǒng)的應(yīng)用領(lǐng)域
1.2.3 嵌入式系統(tǒng)的發(fā)展趨勢(shì)
1.3 嵌入式操作系統(tǒng)
1.3.1 Android
1.3.2 Linux
前言
第1章 嵌入式系統(tǒng)基礎(chǔ)
1.1 嵌入式系統(tǒng)
1.1.1 嵌入式系統(tǒng)簡(jiǎn)介
1.1.2 嵌入式系統(tǒng)的組成
1.1.3 嵌入式系統(tǒng)的特點(diǎn)
1.1.4 嵌入式系統(tǒng)的分類
1.1.5 嵌入式系統(tǒng)與PC的區(qū)別
1.2 嵌入式系統(tǒng)的歷史與發(fā)展
1.2.1 嵌入式系統(tǒng)的歷史
1.2.2 嵌入式系統(tǒng)的應(yīng)用領(lǐng)域
1.2.3 嵌入式系統(tǒng)的發(fā)展趨勢(shì)
1.3 嵌入式操作系統(tǒng)
1.3.1 Android
1.3.2 Linux
1.3.3 μC/OS?Ⅱ
1.3.4 WindowsCE
1.3.5 VxWorks
1.3.6 PalmOS
1.4 嵌入式系統(tǒng)的選型原則
1.4.1 嵌入式處理器的選型原則
1.4.2 嵌入式操作系統(tǒng)的選型原則
本章小結(jié)
思考與練習(xí)
第2章 嵌入式系統(tǒng)的硬件結(jié)構(gòu)
2.1 嵌入式系統(tǒng)的硬件組成
2.2 ARM微處理器概述
2.2.1 ARM公司簡(jiǎn)介
2.2.2 ARM微處理器的家族
2.2.3 ARM微處理器的結(jié)構(gòu)
2.2.4 ARM微處理器核的技術(shù)特點(diǎn)
2.3 ARM的存儲(chǔ)系統(tǒng)
2.3.1 ARM的存儲(chǔ)空間
2.3.2 存儲(chǔ)器的格式
2.3.3 存儲(chǔ)器的管理
2.4 輸入/輸出設(shè)備
2.4.1 LCD顯示
2.4.2 觸摸屏
2.4.3 鍵盤
2.5 ARM的接口技術(shù)
2.5.1 并行通信接口
2.5.2 串行通信接口
2.5.3 USB接口
2.5.4 紅外線接口
2.5.5 PCMCIA和CF
2.6 總線技術(shù)
2.6.1 I2C總線
2.6.2 SPI總線
2.6.3 I2S總線
2.6.4 CAN總線
本章小結(jié)
思考與練習(xí)
第3章 基于ARM9處理器的硬件
開發(fā)平臺(tái)
3.1 ARM9處理器
3.1.1 ARM9與ARM7處理器的比較
3.1.2 ARM920T簡(jiǎn)介
3.2 三星S3C2410X處理器概述
3.2.1 S3C2410X處理器
3.2.2 S3C2410X處理器的工作原理
3.3 S3C2410X處理器單元電路的設(shè)計(jì)
3.3.1 S3C2410X處理器主要引腳的定義
3.3.2 電源和復(fù)位電路
3.3.3 晶體振蕩器電路的設(shè)計(jì)
3.3.4 串口和USB接口電路
3.4 存儲(chǔ)器的設(shè)計(jì)
3.4.1 ROM接口電路的設(shè)計(jì)
3.4.2 Flash接口電路的設(shè)計(jì)
3.4.3 SDRAM接口電路的設(shè)計(jì)
3.5 JTAG調(diào)試接口的設(shè)計(jì)
3.6 博創(chuàng)UP?NETARM2410 S嵌入式平臺(tái)簡(jiǎn)介
3.7 綜合實(shí)訓(xùn):通過JTAG燒寫Flash
本章小結(jié)
思考與練習(xí)
第4章 嵌入式操作系統(tǒng)
4.1 嵌入式操作系統(tǒng)概述
4.1.1 操作系統(tǒng)簡(jiǎn)介
4.1.2 嵌入式操作系統(tǒng)的分類
4.2 Linux操作系統(tǒng)
4.2.1 Linux簡(jiǎn)介
4.2.2 Linux的特點(diǎn)
4.2.3 Linux的組成
4.2.4 Linux的目錄和路徑
4.2.5 Linux的常用命令
4.2.6 Linux單操作系統(tǒng)的安裝
4.3 嵌入式Linux操作系統(tǒng)
4.4 虛擬機(jī)簡(jiǎn)介
4.5 綜合實(shí)訓(xùn):虛擬機(jī)的安裝和使用
本章小結(jié)
思考與練習(xí)
第5章 嵌入式開發(fā)環(huán)境的建立
5.1 嵌入式系統(tǒng)的開發(fā)模式與設(shè)計(jì)
流程
5.1.1 嵌入式系統(tǒng)的開發(fā)模式
5.1.2 嵌入式系統(tǒng)的設(shè)計(jì)流程
5.2 嵌入式Linux的開發(fā)流程
5.3 嵌入式系統(tǒng)開發(fā)環(huán)境的建立
5.3.1 建立開發(fā)環(huán)境
5.3.2 開發(fā)環(huán)境的配置
5.4 BootLoader
5.4.1 BootLoader詳解
5.4.2 vivi
5.4.3 U?Boot
5.5 Linux的根文件系統(tǒng)
5.5.1 文件系統(tǒng)概述
5.5.2 Linux根文件系統(tǒng)
5.5.3 網(wǎng)絡(luò)文件系統(tǒng)
5.6 綜合實(shí)訓(xùn):建立嵌入式軟件環(huán)境
本章小結(jié)
思考與練習(xí)
第6章 嵌入式Linux系統(tǒng)的移植
6.1 移植的概念
6.2 Linux的體系結(jié)構(gòu)
6.2.1 Linux內(nèi)核的結(jié)構(gòu)
6.2.2 Linux內(nèi)核的配置
6.3 Linux內(nèi)核的編譯與移植
6.3.1 安裝交叉編譯工具
6.3.2 修改Makefile文件
6.3.3 設(shè)置Flash分區(qū)
6.3.4 添加對(duì)Yaffs文件系統(tǒng)的支持
6.3.5 Linux內(nèi)核的配置、編譯與移植
6.4 綜合實(shí)訓(xùn):Linux內(nèi)核的編譯與移植實(shí)驗(yàn)
6.4.1 實(shí)驗(yàn)?zāi)康?/p>
6.4.2 基礎(chǔ)知識(shí)
6.4.3 實(shí)驗(yàn)設(shè)備
6.4.4 實(shí)驗(yàn)內(nèi)容
6.4.5 實(shí)驗(yàn)步驟
本章小結(jié)
思考與練習(xí)
第7章 嵌入式Linux應(yīng)用程序的開發(fā)
與調(diào)試
7.1 開發(fā)的環(huán)境與工具
7.1.1 交叉編譯
7.1.2 gcc編譯器
7.1.3 gdb調(diào)試器
7.1.4 Vi編輯器的使用
7.1.5 Makefile文件和make命令
7.2 Linux下的C語言編程
7.2.1 嵌入式C語言程序設(shè)計(jì)
7.2.2 程序的編譯與下載
7.3 嵌入式系統(tǒng)的開發(fā)軟件與調(diào)試工具
7.3.1 嵌入式系統(tǒng)調(diào)試方法概述
7.3.2 常用調(diào)試方式
7.3.3 ADS集成開發(fā)環(huán)境的使用
7.3.4 用AXD進(jìn)行代碼調(diào)試
7.4 ARM仿真器
7.4.1 UArmJtag的JTAG在線仿真調(diào)試
7.4.2 UP?ICE200仿真器的使用
本章小結(jié)
思考與練習(xí)
第8章 設(shè)備驅(qū)動(dòng)程序的開發(fā)
8.1 設(shè)備驅(qū)動(dòng)概述
8.1.1 驅(qū)動(dòng)程序和應(yīng)用程序的區(qū)別
8.1.2 Linux的設(shè)備管理
8.2 設(shè)備驅(qū)動(dòng)程序的開發(fā)過程
8.2.1 字符設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)
8.2.2 塊設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)
8.2.3 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)
8.2.4 驅(qū)動(dòng)程序的注冊(cè)
8.2.5 設(shè)備驅(qū)動(dòng)程序的編譯
8.2.6 驅(qū)動(dòng)程序的加載
8.2.7 驅(qū)動(dòng)程序的調(diào)用
8.3 驅(qū)動(dòng)程序開發(fā)的常見問題
8.4 綜合實(shí)訓(xùn):直流電動(dòng)機(jī)驅(qū)動(dòng)程序的設(shè)計(jì)
本章小結(jié)
思考與練習(xí)
第9章 嵌入式圖形用戶界面編程
9.1 嵌入式系統(tǒng)GUI簡(jiǎn)介
9.1.1 MiniGUI
9.1.2 Microwindows/Nano?X
9.1.3 OpenGUI
9.1.4 Qt/Embedded
9.1.5 幾種常見嵌入式GUI的對(duì)比
9.2 基于Qt的嵌入式GUI應(yīng)用開發(fā)
9.2.1 Qt概述
9.2.2 Qt的信號(hào)與槽機(jī)制
9.2.3 Qt圖形設(shè)計(jì)器
9.2.4 Qt的開發(fā)流程
9.2.5 建立Qt/Embedded開發(fā)環(huán)境
9.3 綜合實(shí)訓(xùn):Qt/Embedded的編程實(shí)例
9.3.1 基于PC的Qt程序
9.3.2 發(fā)布Qt/Embedded程序到目標(biāo)機(jī)
開發(fā)板
本章小結(jié)
思考與練習(xí)
第10章 嵌入式系統(tǒng)的工程開發(fā)實(shí)例
10.1 基于ARM的可燃?xì)怏w報(bào)警系統(tǒng)
10.1.1 系統(tǒng)設(shè)計(jì)概述
10.1.2 硬件電路的設(shè)計(jì)
10.1.3 驅(qū)動(dòng)程序的設(shè)計(jì)
10.1.4 應(yīng)用程序的設(shè)計(jì)
10.2 CAN總線應(yīng)用實(shí)例
10.2.1 CAN總線概述
10.2.2 CAN智能節(jié)點(diǎn)的設(shè)計(jì)
10.2.3 CAN接口電路的設(shè)計(jì)
10.2.4 報(bào)文的發(fā)送與接收
10.2.5 SPI接口
10.2.6 CAN總線波特率的設(shè)置
10.2.7 CAN總線驅(qū)動(dòng)程序
10.2.8 CAN應(yīng)用程序
本章小結(jié)
思考與練習(xí)
參考文獻(xiàn)