《嵌入式系统基础教程(第2版)》
前言
第1章嵌入式系统概论1
1.1概述1
1.1.1嵌入式系统的定义1
1.1.2后PC时代与无所不在的计算时代1
1.2嵌入式系统发展���史2
1.2.1微处理器的发展2
1.2.2嵌入式系统的发展阶段3
1.3嵌入式系统的特点4
1.4嵌入式系统的基本分类5
1.5嵌入式系统举例5
1.5.1低端嵌入式系统5
1.5.2中端嵌入式系统7
1.5.3高端嵌入式系统9
1.6嵌入式系统的基本组成11
1.6.1嵌入式系统的硬件组成12
1.6.2嵌入式系统的软件组成13
1.7嵌入式系统的现状与发展趋势14
1.7.1嵌入式系统的现状及主要制约因素14
1.7.2嵌入式系统的发展方向15
1.8嵌入式系统的相关研究领域15
1.8.1嵌入式系统的主干学科领域15
1.8.2与嵌入式系统密切关联的科学技术领域15
1.9本章小结18
1.10习题和思考题19
第2章嵌入式微处理器技术20
2.1嵌入式处理器基本分类20
2.1.1通用型嵌入式微处理器20
2.1.2微控制器22
2.1.3嵌入式DSP处理器23
2.1.4可编程片上系统23
2.1.5嵌入式双核/多核处理器24
2.1.6可扩展处理平台26
2.2嵌入式微处理器的典型技术27
2.2.1I/O端口统一编址与特殊功能寄存器27
2.2.2哈佛结构29
2.2.3桶型移位器31
2.2.4正交指令集32
2.2.5双密度指令集33
2.2.6看门狗定时器33
2.2.7边界对准与端序35
2.2.8地址重映射36
2.2.9FIFO缓冲寄存器37
2.2.10主存控制器38
2.3主流嵌入式微处理器39
2.3.1MIPS RISC嵌入式微处理器39
2.3.2PowerPC系列嵌入式微处理器41
2.3.3飞思卡尔公司的系列嵌入式微控制器42
2.3.4凌动系列嵌入式微处理器43
2.3.**RM系列嵌入式微处理器45
2.4本章小结46
2.5习题和思考题46
第3章ARM处理器体系结构47
3.1概述47
3.1.1ARM体系结构的版本47
3.1.2ARM体系结构版本的变种48
3.1.3ARM体系结构版本的命名规则48
3.1.4ARM处理器核系列49
3.2ARM处理器的结构52
3.2.1ARM处理器的RISC特征52
3.2.2流水线53
3.2.3ARM的工作模式和工作状态57
3.2.4ARM寄存器的组织59
3.3ARM Cortex处理器62
3.3.1ARM Cortex-M3内核62
3.3.2采用Cortex-M3核生产的微控制器66
3.3.3ARM Cortex-A8内核66
3.3.4ARM Cortex-A9内核67
3.3.5采用Cortex-A9内核生产的应用处理器69
3.4ARM存储器的组织70
3.4.1ARM存储器的数据类型和存储格式70
3.4.2ARM的存储体系70
3.4.3片内存储器的用法71
3.4.4协处理器CP1571
3.4.5存储管理单元72
3.4.6保护单元78
3.4.7ARM处理器的Cache80
3.4.8快速上下文切换扩展82
3.4.9写缓存区83
3.**RM处理器的片上总线规范AMBA84
3.5.1AMBA 2.0片上总线的特点84
3.5.2AMBA 2.0片上总线的主控单元和从动单元85
3.5.3AMBA 2.0总线的时序85
3.5.4AMBA 3.0——AXI协议86
3.6ARM处理器核的典型范例:ARM7TDMI86
3.6.1复位87
3.6.2总线周期87
3.6.3ARM7TDMI处理器的总线优先级90
3.7ARM的异常中断处理90
3.7.1ARM的异常中断响应过程90
3.7.2从异常中断处理程序返回92
3.8本章小结94
3.9习题和思考题94
第4章嵌入式系统调试技术95
4.1嵌入式硬件调试结构和调试技术95
4.1.1与通用计算机调试结构的比较96
4.1.2调试信道96
4.1.3ROM仿真器97
4.1.4实时在线仿真97
4.2指令集模拟器97
4.2.1ARMulator98
4.2.2SkyEye98
4.3片上调试技术99
4.3.1背景调试模式99
4.3.2边界扫描测试技术和JTAG接口100
4.3.3ARM7TDMI核中的JTAG扫描链104
4.3.4嵌入式ICE-RT模块105
4.3.5JTAG的断点设置原理106
4.3.6Nexus调试标准107
4.4嵌入追踪宏单元ETM108
4.5基于Angel的调试方案109
4.5.1Angel调试系统的组成109
4.5.2Angel的两种版本109
4.5.3Angel的调试处理流程和调试操作步骤110
4.6半主机调试方式110
4.7本章小结112
4.8习题和思考题112
第5章ARM处理器指令集113
5.1ARM处理器的指令系统113
5.1.1ARM处理器指令系统的主要特征113
5.1.2ARM与x86指令系统的比较114
5.2ARM指令集的编码格式和语法114
5.2.1ARM指令集的编码格式114
5.2.2ARM指令的一般语法格式114
5.2.3ARM指令的执行条件114
5.2.4第2操作数 说明116
5.3ARM处理器的寻址方式117
5.4ARM指令的分类说明121
5.4.1分支指令122
5.4.2Load/Store指令123
5.4.3数据处理指令127
5.4.4乘法指令128
5.4.5前导零计数指令129
5.4.6程序状态寄存器指令129
5.4.7协处理器指令130
5.4.8异常中断指令131
5.4.9ARM伪指令131
5.5本章小结133
5.6习题和思考题134
第6章ARM汇编语言程序设计135
6.1概述135
6.1.1预定义寄存器名及内部变量名135
6.1.2ARM汇编语言程序的语句格式136
6.1.3ARM汇编语言程序编写规范139
6.2ARM汇编语言指示符139
6.2.1AREA140
6.2.2ENTRY141
6.2.3CODE16、CODE32、THUMB和ARM141
6.2.4EQU142
6.2.5END142
6.2.6ALIGN142
6.2.7DCB143
6.2.8MAP144
6.2.9FIELD144
6.2.10SPACE144
6.2.11DCD和DCDU145
6.2.12GBLA、GBLL及GBLS146
6.2.13LCLA、LCLL及LCLS147
6.2.14SETA、SETL及SETS147
6.2.15其他指示符的简单功能描述147
6.3ARM汇编语言指示符的编程举例149
6.3.1条件分支指示符149
6.3.2ASCII字符串比较149
6.3.3宏定义指示符151
6.4ARM过程调用标准ATPCS和AAPCS153
6.4.1寄存器的使用规则153
6.4.2堆栈使用规则153
6.4.3参数传递规则154
6.5典型ARM汇编语言程序举例154
6.5.1入门范例154
6.5.2基本结构156
6.5.3典型的ARM汇编程序范例159
6.5.45级流水线的互锁问题165
6.6ARM内嵌汇编166
6.6.1内嵌汇编的指令用法167
6.6.2内嵌汇编器与armasm汇编器的区别167
6.7C/C++与汇编程序的相互调用168
6.7.1C/C++程序调用汇编程序169
6.7.2汇编程序调用C程序169
6.7.3汇编程序调用C++程序170
6.7.4C程序调用C++程序172
6.8软中断和半主机方式ARM汇编程序设计173
6.9GNU格式的ARM汇编语言程序设计177
6.9.1GNU格式ARM汇编语言程序的设计要点177
6.9.2GNU格式ARM汇编语言程序举例178
6.10本章小结179
6.11习题和思考题179
第7章嵌入式系统开发工具181
7.1概述181
7.1.1开发ARM嵌入式系统的硬件结构181
7.1.2开发工具的基本分类和主要品种181
7.1.3集成开发环境183
7.1.4CodeWarrior集成开发环境184
7.2ARM开发工具概述185
7.3ARM映像文件格式186
7.3.1ELF文件格式186
7.3.2ARM映像文件的组成188
7.4ADS的组成与使用196
7.4.1命令行开发工具196
7.4.2GUI开发工具200
7.4.3ADS实用工具202
7.5用ADS生成应用程序203
7.5.1生成简单应用程序hello203
7.5.2生成函数库mathlib206
7.5.3生成一个在目标板上运行的定时器程序207
7.6RVDS209
7.6.1RVDS的组件210
7.6.2RVDS使用概览211
7.6.3开中断关中断的内嵌ARM汇编函数212
7.7GNU交叉工具链214
7.8本章小结214
7.9习题和思考题214
第8章嵌入式外设控制器216
8.1嵌入式中断控制器216
8.1.1嵌入式中断控制器工作原理216
8.1.2ARM Cortex-M3嵌套向量中断控制器222
8.2向量中断与非向量中断的入口程序编程示例225
8.3嵌入式中断应用程序举例228
8.4嵌入式DMA控制器232
8.4.1S3C44B0X的DMA控制器232
8.4.2S3C44B0X的DMAC相关控制寄存器234
8.4.3S3C44B0X的DMA应用程序举例235
8.5时钟电源管理器、实时时钟和脉宽调制定时器237
8.5.1S3C44B0X的时钟电源管理器238
8.5.2S3C2410X的实时时钟240
8.5.3实时时钟应用程序概要设计案例241
8.5.4S3C44B0X的脉宽调制定时器244
8.6本章小结245
8.7习题和思考题245
第9章嵌入式存储器和接口技术247
9.1嵌入式系统常用的半导体存储器247
9.1.1闪速存储器247
9.1.2静态存储器和同步动态存储器258
9.2常用的嵌入式系统总线265
9.2.1I2C总线266
9.2.2SPI总线接口268
9.2.3CAN总线269
9.3常用的嵌入式系统接口271
9.3.1UART接口271
9.3.2通用输入输出接口277
9.3.3以太网接口278
9.4嵌入式系统常用的外部设备285
9.4.1键盘285
9.4.2液晶显示器288
9.4.3触摸屏291
9.5本章小结297
9.6习题和思考题297
参考文献298