第1章 嵌入式系统基础知识 1
1.1嵌入式系统概述 1
1.1.1计算机的发展历史 1
1.1.2嵌入式系统的发展历史 1
1.1.3嵌入式系统的概念 3
1.1.4嵌入式系统的特点 3
1.1.5嵌入式系统的分类 4
1.1.6嵌入式系统的典型应用 5
1.2嵌入式系统的结构与组成 7
1.2.1嵌入式系统的体系结构 7
1.2.2嵌入式系统的组成 8
1.2.3嵌入式处理器 9
1.2.4实时操作系统 11
1.3嵌入式系统程序开发 12
1.3.1嵌入式系统程序开发过程 12
1.3.2嵌入式系统程序开发层次 13
1.3.3嵌入式系统程序开发语言 13
1.3.4嵌入式系统的开发特点 14
1.4嵌入式系统的新发展 14
1.5嵌入式系统中的信息表示与运算基础 17
1.5.1进位计数制与转换 17
1.5.2计算机中数的表示 17
1.5.3计算机中数的单位 18
1.6本章小结 18
习题 18
第2章ARM微处理器硬件结构 19
2.1 ARM简介 19
2.1.1 CISC 19
2.1.2 RISC 19
2.1.3 ARM微处理器介绍 20
2.2 ARM7TDMI微处理器硬件结构 22
2.2.1 ARM7TDMI内核 23
2.2.2 ARM7TDMI外围电路 24
2.2.3 ARM7TDMI外围引脚 24
2.3 ARM存储体系 27
2.3.1 ARM存储器简述 27
2.3.2 ARM存储层次结构 27
2.3.3 ARM数据存储类型 28
2.3.4 ARM数据存储方式 28
2.4 ARM协处理器 29
2.5 ARM片上总线 29
2.6 ARM调试结构 30
2.7 ARM外围电路扩展 31
2.8本章小结 32
习题 32
第3章ARM微处理器体系结构 33
3.1 ARM的工作状态 33
3.1.1 ARM/Thumb技术介绍 33
3.1.2 ARM/Thumb状态切换 33
3.2 ARM的工作模式 34
3.3 ARM的寄存器组织 34
3.3.1 ARM状态下的寄存器组织 34
3.3.2 Thumb状态下的寄存器组织 38
3.4 ARM的异常处理 39
3.4.1 ARM异常类型 39
3.4.2对异常的响应 40
3.4.3从异常返回 40
3.4.4各类异常的具体描述 41
3.4.5异常向量 43
3.4.6异常优先级 44
3.5 ARM的流水线技术 44
3.5.1 ARM7的三级流水线 44
3.5.2三级流水线中PC的行为 45
3.5.3 ARM9的五级流水线 46
3.6 ARM协处理器 47
3.7本章小结 48
习题 49
第4章ARM指令系统 50
4.1 ARM指令集概述 50
4.1.1 ARM指令集编码 50
4.1.2 ARM指令的条件码 50
4.1.3 ARM指令格式 51
4.2 ARM指令的寻址方式 52
4.2.1立即寻址 52
4.2.2寄存器寻址 52
4.2.3寄存器间接寻址 53
4.2.4基址变址寻址 53
4.2.5堆栈寻址 54
4.2.6块拷贝寻址 54
4.2.7相对寻址 56
4.3 ARM指令集 56
4.3.1 跳转指令 56
4.3.2数据处理指令 57
4.3.3乘法指令与乘加指令 61
4.3.4程序状态寄存器访问指令 63
4.3.5加载/存储指令 63
4.3.6批量数据加载/存储指令 65
4.3.7数据交换指令 66
4.3.8移位指令(操作) 66
4.3.9协处理器指令 67
4.3.10异常产生指令 68
4.3.11基本功能段示例 70
4.4 Thumb指令及应用 71
4.4.1 Thumb指令集概述 71
4.4.2 Thumb指令分类介绍 72
4.5本章小结 80
习题 80
第5章ARM程序设计基础 82
5.1 ARM汇编伪指令 82
5.1.1符号定义伪指令 82
5.1.2数据定义伪指令 83
5.1.3汇编控制伪指令 86
5.1.4地址读取伪指令 88
5.1.5其他常用的伪指令 89
5.2 ARM汇编语言 93
5.2.1 ARM汇编语句格式 93
5.2.2汇编语言程序中常用的符号 93
5.2.3汇编语言程序中的表达式和运算符 95
5.2.4 ARM汇编程序结构 97
5.2.5 ARM汇编程序示例 98
5.3汇编语言与C语言的混合编程 101
5.3.1 ARM程序的文件格式 102
5.3.2 ATPCS简介 102
5.3.3内嵌汇编 104
5.3.4 C语言程序和ARM汇编程序间相互调用 106
5.4本章小结 109
习题 109
第6章 实时软件系统 111
6.1实时软件系统概述 111
6.2实时软件系统结构 112
6.2.1轮转结构 112
6.2.2带有中断的轮转结构 113
6.2.3函数队列调度结构 114
6.2.4实时操作系统结构 115
6.3实时操作系统概述 116
6.3.1实时操作系统分类 116
6.3.2实时操作系统体系结构 116
6.4实时操作系统运行原理 119
6.4.1任务 120
6.4.2互斥 122
6.4.3同步 123
6.4.4任务间通信 124
6.4.5中断处理 125
6.4.6时钟节拍 127
6.4.7死锁 128
6.4.8实时调度策略 130
6.5主流的实时操作系统 136
6.6本章小结 141
习题 141
第7章μC/OS-Ⅱ源码解析和移植分析 142
7.1 μC/OS-II的内核结构 142
7.1.1文件结构 142
7.1.2初始化和启动 143
7.1.3时钟节拍 148
7.1.4任务管理 150
7.1.5中断服务 156
7.1.6任务间通信 157
7.2 μC/OS-Ⅱ的移植 164
7.2.1 INCLUDES.H 165
7.2.2 OS_CPU.H 166
7.2.3 OS_CPU_C.C 168
7.2.4 OS_CPU_ A.ASM 171
7.3本章小结 174
习题 174
第8章 嵌入式系统设计开发流程 176
8.1嵌入式系统设计开发基础 176
8.1.1嵌入式系统产品生命周期 176
8.1.2嵌入式系统分析与设计方法 177
8.1.3统一建模语言UML 177
8.2嵌入式系统需求分析 182
8.3嵌入式系统的设计 183
8.3.1设计模式 183
8.3.2概要设计 185
8.3.3详细设计 186
8.4嵌入式系统测试 186
8.4.1硬件测试 186
8.4.2软件测试 188
8.4.3嵌入式系统的系统测试 190
8.5嵌入式系统的调试 191
8.5.1软件模拟器 191
8.5.2在线仿真调试 191
8.5.3片上调试 192
8.5.4基于调试代理的调试方法 194
8.6嵌入式系统设计实例 195
8.6.1需求分析 196
8.6.2规格说明 196
8.6.3体系结构设计(概要设计) 197
8.6.4硬件构件和软件构件的设计(详细设计) 198
8.6.5系统集成与测试 199
8.7本章小结 199
习题 200
第9章 嵌入式系统开发工具及实例 201
9.1 ARM嵌入式开发工具概览 201
9.2 ADS 1.2 202
9.2.1建立一个工程 204
9.2.2配置生成目标 207
9.2.3编译连接 211
9.2.4用AXD进行代码调试 212
9.3 RealView MDK 213
9.3.1集成开发环境简介 213
9.3.2工程管理 215
9.3.3编写源程序 222
9.3.4编译程序 225
9.3.5调试程序 226
9.4 RVDS 229
9.4.1 RVDS简介 229
9.4.2 RVDS特点 230
9.5 IAR EWARM 233
9.5.1 EWARM集成开发环境介绍 233
9.5.2 IAR J-Link仿真器简介 234
9.6本章小结 235
习题 235
第10章S3C44B0X系统结构 236
10.1 S3C44B0X简介 236
10.1.1片上功能 236
10.1.2特性 237
10.1.3芯片引脚定义 239
10.2 S3C44B0X存储控制器 243
10.2.1空间划分 243
10.2.2功能描述 244
10.2.3特殊功能寄存器 244
10.3 S3C44B0X的I/O端口 247
10.3.1功能概述 247
10.3.2端口控制寄存器 249
10.4 S3C44B0X的DMA 251
10.4.1概述 251
10.4.2 ZDMA 251
10.4.3 BDMA 252
10.4.4 DMA请求源选择 252
10.4.5自动重装模式 253
10.4.6 DMA相关寄存器 253
10.5 S3C44B0X的UART 256
10.5.1概述 256
10.5.2 UART操作 256
10.5.3特殊功能寄存器 259
10.6 S3C44B0X的中断控制器 263
10.6.1概述 263
10.6.2中断控制器操作 263
10.6.3中断源 264
10.6.4特殊功能寄存器 266
10.7 S3C44B0X的RTC 269
10.7.1概述 269
10.7.2 RTC特性 269
10.7.3 RTC操作 270
10.7.4特殊功能寄存器 271
10.8 S3C44B0X的其他模块 272
10.9本章小结 275
习题 275
参考文献 277