《嵌入式系統(tǒng)基礎(chǔ)教程(第2版)》全面介紹了嵌入式系統(tǒng)的基本理論和知識(shí),教學(xué)重點(diǎn)是基于ARM處理器的嵌入式硬件平臺(tái)。本書(shū)的主要內(nèi)容包括:嵌入式系統(tǒng)的基本概念、嵌入式微處理器技術(shù)、ARM處理器體系結(jié)構(gòu)、嵌入式調(diào)試技術(shù)、ARM處理器指令系統(tǒng)、嵌入式開(kāi)發(fā)工具、嵌入式外設(shè)控制器、嵌入式存儲(chǔ)器和接口技術(shù)、嵌入式操作系統(tǒng)等知識(shí)。
前言
第1章 嵌入式系統(tǒng)概論
1.1 概述
1.1.1 嵌入式系統(tǒng)的定義
1.1.2 后PC時(shí)代與無(wú)所不在的計(jì)算時(shí)代
1.2 嵌入式系統(tǒng)發(fā)展簡(jiǎn)史
1.2.1 微處理器的發(fā)展
1.2.2 嵌入式系統(tǒng)的發(fā)展階段
1.3 嵌入式系統(tǒng)的特點(diǎn)
1.4 嵌入式系統(tǒng)的基本分類(lèi)
1.5 嵌入式系統(tǒng)舉例
1.5.1 低端嵌入式系統(tǒng)
1.5.2 中端嵌入式系統(tǒng)
1.5.3 高端嵌入式系統(tǒng)
1.6 嵌入式系統(tǒng)的基本組成
1.6.1 嵌入式系統(tǒng)的硬件組成
1.6.2 嵌入式系統(tǒng)的軟件組成
1.7 嵌入式系統(tǒng)的現(xiàn)狀與發(fā)展趨勢(shì)
1.7.1 嵌入式系統(tǒng)的現(xiàn)狀及主要制約因素
1.7.2 嵌入式系統(tǒng)的發(fā)展方向
1.8 嵌入式系統(tǒng)的相關(guān)研究領(lǐng)域
1.8.1 嵌入式系統(tǒng)的主干學(xué)科領(lǐng)域
1.8.2 與嵌入式系統(tǒng)密切關(guān)聯(lián)的科學(xué)技術(shù)領(lǐng)域
1.9 本章小結(jié)
1.10 習(xí)題和思考題
第2章 嵌入式微處理器技術(shù)
2.1 嵌入式處理器基本分類(lèi)
2.1.1 通用型嵌入式微處理器
2.1.2 微控制器
2.1.3 嵌入式DSP處理器
2.1.4 可編程片上系統(tǒng)
2.1.5 嵌入式雙核/多核處理器
2.1.6 可擴(kuò)展處理平臺(tái)
2.2 嵌入式微處理器的典型技術(shù)
2.2.1 I/O端口統(tǒng)一編址與特殊功能寄存器
2.2.2 哈佛結(jié)構(gòu)
2.2.3 桶型移位器
2.2.4 正交指令集
2.2.5 雙密度指令集
2.2.6 看門(mén)狗定時(shí)器
2.2.7 邊界對(duì)準(zhǔn)與端序
2.2.8 地址重映射
2.2.9 FIFO緩沖寄存器
2.2.10 主存控制器
2.3 主流嵌入式微處理器
2.3.1 MIPS RISC嵌入式微處理器
2.3.2 PowerPC系列嵌入式微處理器
2.3.3 飛思卡爾公司的系列嵌入式微控制器
2.3.4 凌動(dòng)系列嵌入式微處理器
2.3.5 ARM系列嵌入式微處理器
2.4 本章小結(jié)
2.5 習(xí)題和思考題
第3章 ARM處理器體系結(jié)構(gòu)
3.1 概述
3.1.1 ARM體系結(jié)構(gòu)的版本
3.1.2 ARM體系結(jié)構(gòu)版本的變種
3.1.3 ARM體系結(jié)構(gòu)版本的命名規(guī)則
3.1.4 ARM處理器核系列
3.2 ARM處理器的結(jié)構(gòu)
3.2.1 ARM處理器的RISC特征
3.2.2 流水線(xiàn)
3.2.3 ARM的工作模式和工作狀態(tài)
3.2.4 ARM寄存器的組織
3.3 ARM Cortex處理器
3.3.1 ARM Cortex-M3內(nèi)核
3.3.2 采用Cortex-M3核生產(chǎn)的微控制器
3.3.3 ARM Cortex-A8內(nèi)核
3.3.4 ARM Cortex-A9內(nèi)核
3.3.5 采用Cortex-A9內(nèi)核生產(chǎn)的應(yīng)用處理器
3.4 ARM存儲(chǔ)器的組織
3.4.1 ARM存儲(chǔ)器的數(shù)據(jù)類(lèi)型和存儲(chǔ)格式
3.4.2 ARM的存儲(chǔ)體系
3.4.3 片內(nèi)存儲(chǔ)器的用法
3.4.4 協(xié)處理器CP15
3.4.5 存儲(chǔ)管理單元
3.4.6 保護(hù)單元
3.4.7 ARM處理器的Cache
3.4.8 快速上下文切換擴(kuò)展
3.4.9 寫(xiě)緩存區(qū)
3.5 ARM處理器的片上總線(xiàn)規(guī)范AMBA
3.5.1 AMBA 2.0片上總線(xiàn)的特點(diǎn)
3.5.2 AMBA 2.0片上總線(xiàn)的主控單元和從動(dòng)單元
3.5.3 AMBA 2.0總線(xiàn)的時(shí)序
3.5.4 AMBA 3.0——AXI協(xié)議
3.6 ARM處理器核的典型范例:ARM7TDMI
3.6.1 復(fù)位
3.6.2 總線(xiàn)周期
3.6.3 ARM7TDMI處理器的總線(xiàn)優(yōu)先級(jí)
3.7 ARM的異常中斷處理
3.7.1 ARM的異常中斷響應(yīng)過(guò)程
3.7.2 從異常中斷處理程序返回
3.8 本章小結(jié)
3.9 習(xí)題和思考題
第4章 嵌入式系統(tǒng)調(diào)試技術(shù)
4.1 嵌入式硬件調(diào)試結(jié)構(gòu)和調(diào)試技術(shù)
4.1.1 與通用計(jì)算機(jī)調(diào)試結(jié)構(gòu)的比較
4.1.2 調(diào)試信道
4.1.3 ROM仿真器
4.1.4 實(shí)時(shí)在線(xiàn)仿真
4.2 指令集模擬器
4.2.1 ARMulator
4.2.2 SkyEye
4.3 片上調(diào)試技術(shù)
4.3.1 背景調(diào)試模式
4.3.2 邊界掃描測(cè)試技術(shù)和JTAG接口
4.3.3 ARM7TDMI核中的JTAG掃描鏈
4.3.4 嵌入式ICE-RT模塊
4.3.5 JTAG的斷點(diǎn)設(shè)置原理
4.3.6 Nexus調(diào)試標(biāo)準(zhǔn)
4.4 嵌入追蹤宏單元ETM
4.5 基于Angel的調(diào)試方案
4.5.1 Angel調(diào)試系統(tǒng)的組成
4.5.2 Angel的兩種版本
4.5.3 Angel的調(diào)試處理流程和調(diào)試操作步驟
4.6 半主機(jī)調(diào)試方式
4.7 本章小結(jié)
4.8 習(xí)題和思考題
第5章 ARM處理器指令集
5.1 ARM處理器的指令系統(tǒng)
5.1.1 ARM處理器指令系統(tǒng)的主要特征
5.1.2 ARM與x86指令系統(tǒng)的比較
5.2 ARM指令集的編碼格式和語(yǔ)法
5.2.1 ARM指令集的編碼格式
5.2.2 ARM指令的一般語(yǔ)法格式
5.2.3 ARM指令的執(zhí)行條件
5.2.4 第2操作數(shù)說(shuō)明
5.3 ARM處理器的尋址方式
5.4 ARM指令的分類(lèi)說(shuō)明
5.4.1 分支指令
5.4.2 Load/Store指令
5.4.3 數(shù)據(jù)處理指令
5.4.4 乘法指令
5.4.5 前導(dǎo)零計(jì)數(shù)指令
5.4.6 程序狀態(tài)寄存器指令
5.4.7 協(xié)處理器指令
5.4.8 異常中斷指令
5.4.9 ARM偽指令
5.5 本章小結(jié)
5.6 習(xí)題和思考題
第6章 ARM匯編語(yǔ)言程序設(shè)計(jì)
6.1 概述
6.1.1 預(yù)定義寄存器名及內(nèi)部變量名
6.1.2 ARM匯編語(yǔ)言程序的語(yǔ)句格式
6.1.3 ARM匯編語(yǔ)言程序編寫(xiě)規(guī)范
6.2 ARM匯編語(yǔ)言指示符
6.2.1 AREA
6.2.2 ENTRY
6.2.3 CODE16、CODE32、THUMB和ARM
6.2.4 EQU
6.2.5 END
6.2.6 ALIGN
6.2.7 DCB
6.2.8 MAP
6.2.9 FIELD
6.2.10 SPACE
6.2.11 DCD和DCDU
6.2.12 GBLA、GBLL及GBLS
6.2.13 LCLA、LCLL及LCLS
6.2.14 SETA、SETL及SETS
6.2.15 其他指示符的簡(jiǎn)單功能描述
6.3 ARM匯編語(yǔ)言指示符的編程舉例
6.3.1 條件分支指示符
6.3.2 ASCII字符串比較
6.3.3 宏定義指示符
6.4 ARM過(guò)程調(diào)用標(biāo)準(zhǔn)ATPCS和AAPCS
6.4.1 寄存器的使用規(guī)則
6.4.2 堆棧使用規(guī)則
6.4.3 參數(shù)傳遞規(guī)則
6.5 典型ARM匯編語(yǔ)言程序舉例
6.5.1 入門(mén)范例
6.5.2 基本結(jié)構(gòu)
6.5.3 典型的ARM匯編程序范例
6.5.4 5級(jí)流水線(xiàn)的互鎖問(wèn)題
6.6 ARM內(nèi)嵌匯編
6.6.1 內(nèi)嵌匯編的指令用法
6.6.2 內(nèi)嵌匯編器與armasm匯編器的區(qū)別
6.7 C/C++與匯編程序的相互調(diào)用
6.7.1 C/C++程序調(diào)用匯編程序
6.7.2 匯編程序調(diào)用C程序
6.7.3 匯編程序調(diào)用C++程序
6.7.4 C程序調(diào)用C++程序
6.8 軟中斷和半主機(jī)方式ARM匯編程序設(shè)計(jì)
6.9 GNU格式的ARM匯編語(yǔ)言程序設(shè)計(jì)
6.9.1 GNU格式ARM匯編語(yǔ)言程序的設(shè)計(jì)要點(diǎn)
6.9.2 GNU格式ARM匯編語(yǔ)言程序舉例
6.10 本章小結(jié)
6.11 習(xí)題和思考題
第7章 嵌入式系統(tǒng)開(kāi)發(fā)工具
7.1 概述
7.1.1 開(kāi)發(fā)ARM嵌入式系統(tǒng)的硬件結(jié)構(gòu)
7.1.2 開(kāi)發(fā)工具的基本分類(lèi)和主要品種
7.1.3 集成開(kāi)發(fā)環(huán)境
7.1.4 CodeWarrior集成開(kāi)發(fā)環(huán)境
7.2 ARM開(kāi)發(fā)工具概述
7.3 ARM映像文件格式
7.3.1 ELF文件格式
7.3.2 ARM映像文件的組成
7.4 ADS的組成與使用
7.4.1 命令行開(kāi)發(fā)工具
7.4.2 GUI開(kāi)發(fā)工具
7.4.3 ADS實(shí)用工具
7.5 用ADS生成應(yīng)用程序
7.5.1 生成簡(jiǎn)單應(yīng)用程序hello
7.5.2 生成函數(shù)庫(kù)mathlib
7.5.3 生成一個(gè)在目標(biāo)板上運(yùn)行的定時(shí)器程序
7.6 RVDS
7.6.1 RVDS的組件
7.6.2 RVDS使用概覽
7.6.3 開(kāi)中斷關(guān)中斷的內(nèi)嵌ARM匯編函數(shù)
7.7 GNU交叉工具鏈
7.8 本章小結(jié)
7.9 習(xí)題和思考題
第8章 嵌入式外設(shè)控制器
8.1 嵌入式中斷控制器
8.1.1 嵌入式中斷控制器工作原理
8.1.2 ARM Cortex-M3嵌套向量中斷控制器
8.2 向量中斷與非向量中斷的入口程序編程示例
8.3 嵌入式中斷應(yīng)用程序舉例
8.4 嵌入式DMA控制器
8.4.1 S3C44B0X的DMA控制器
8.4.2 S3C44B0X的DMAC相關(guān)控制寄存器
8.4.3 S3C44B0X的DMA應(yīng)用程序舉例
8.5 時(shí)鐘電源管理器、實(shí)時(shí)時(shí)鐘和脈寬調(diào)制定時(shí)器
8.5.1 S3C44B0X的時(shí)鐘電源管理器
8.5.2 S3C2410X的實(shí)時(shí)時(shí)鐘
8.5.3 實(shí)時(shí)時(shí)鐘應(yīng)用程序概要設(shè)計(jì)案例
8.5.4 S3C44B0X的脈寬調(diào)制定時(shí)器
8.6 本章小結(jié)
8.7 習(xí)題和思考題
第9章 嵌入式存儲(chǔ)器和接口技術(shù)
9.1 嵌入式系統(tǒng)常用的半導(dǎo)體存儲(chǔ)器
9.1.1 閃速存儲(chǔ)器
9.1.2 靜態(tài)存儲(chǔ)器和同步動(dòng)態(tài)存儲(chǔ)器
9.2 常用的嵌入式系統(tǒng)總線(xiàn)
9.2.1 I2C總線(xiàn)
9.2.2 SPI總線(xiàn)接口
9.2.3 CAN總線(xiàn)
9.3 常用的嵌入式系統(tǒng)接口
9.3.1 UART接口
9.3.2 通用輸入輸出接口
9.3.3 以太網(wǎng)接口
9.4 嵌入式系統(tǒng)常用的外部設(shè)備
9.4.1 鍵盤(pán)
9.4.2 液晶顯示器
9.4.3 觸摸屏
9.5 本章小結(jié)
9.6 習(xí)題和思考題
參考文獻(xiàn)