第1章 嵌入式系统概述 1
1.1 嵌入式系统的概念 1
1.2 嵌入式系统的历史 2
1.3 嵌入式系统的组成 4
1.3.1 嵌入式系统的组成结构 4
1.3.2 嵌入式处理器 7
1.3.3 典型的嵌入式操作系统 9
1.4 嵌入式系统的特点 11
1.5 嵌入式系统的应用前景 12
1.6 嵌入式系统的发展趋势 18
思考题与习题 20
第2章 ARM体系结构 21
2.1 ARM体系结构概述 21
2.1.1 ARM技术简介 21
2.1.2 ARM体系结构的版本 22
2.1.3 ARM处理器内核系列 23
2.2 ARM体系架构分析 25
2.2.1 复杂指令集和精简指令集 25
2.2.2 普林斯顿结构和哈佛结构 26
2.2.3 流水线技术 26
2.3 ARM处理器模式与寄存器 29
2.3.1 ARM处理器模式 29
2.3.2 ARM内部寄存器 29
2.4 ARM体系的异常处理 33
2.5 ARM体系的存储系统 35
思考题与习题 36
第3章 ARM指令系统 37
3.1 指令集概述 37
3.2 ARM指令集 38
3.2.1 ARM指令格式 38
3.2.2 ARM指令寻址方式 39
3.2.3 ARM指令分类 42
3.3 Thumb指令集 51
3.3.1 Thumb状态寄存器组织 52
3.3.2 Thumb指令 53
思考题与习题 62
第4章 ARM汇编语言及C语言程序
设计基础 63
4.1 ARM汇编语言的语句格式 63
4.1.1 符号命名规则 63
4.1.2 ARM汇编语言伪操作 63
4.1.3 ARM汇编语言伪指令 64
4.2 ARM汇编语言的程序结构 65
4.3 ARM汇编语言程序设计举例 67
4.4 ARM C语言基础及混合编程 68
4.4.1 ATPCS概述 68
4.4.2 基本ATPCS 69
4.4.3 ARM程序和Thumb程序的混合
使用 71
4.4.4 C语言及汇编语言混合编程 71
4.5 ARM汇编语言实验基础 76
4.5.1 ADS软件组成 76
4.5.2 使用CodeWarrior IDE 80
4.5.3 使用AXD IDE 87
思考题与习题 91
第5章 嵌入式系统硬件技术基础 92
5.1 总线 92
5.1.1 并行总线 93
5.1.2 串行总线 94
5.1.3 多总线结构 97
5.1.4 直接存储器访问 97
5.2 存储系统 98
5.2.1 存储器的基本概念及分类 99
5.2.2 随机存储器 99
5.2.3 只读存储器 100
5.2.4 嵌入式系统的存储器组织 101
5.2.5 存储器的选型 101
5.3 输入/输出设备及通信接口 102
5.3.1 输入/输出设备 102
5.3.2 常用通信接口 102
5.3.3 网络接口 105
5.4 嵌入式最小系统 105
思考题与习题 108
第6章 基于S3C2410的硬件结构与接口
编程 109
6.1 S3C2410简介 109
6.1.1 S3C2410X的组成 109
6.1.2 S3C2410X的特点及主要片上
功能 110
6.2 S3C2410X的存储器及其控制 114
6.2.1 S3C2410X的存储器控制器 114
6.2.2 NAND Flash控制器 116
6.3 时钟和电源管理 118
6.3.1 S3C2410X的时钟管理 118
6.3.2 S3C2410X的电源管理 119
6.4 通用I/O端口 119
6.4.1 S3C2410X通用I/O端口的工作
机制 119
6.4.2 S3C2410X通用I/O端口编程实例 123
6.5 定时器 125
6.5.1 S3C2410X定时器概述 125
6.5.2 S3C2410X定时器的工作原理 126
6.5.3 PWM输出控制直流电动机应用
实例 134
6.6 异步串行通信接口 137
6.6.1 S3C2410X的异步串行口简介 137
6.6.2 S3C2410X UART工作原理 138
6.6.3 S3C2410X UART编程实例 146
6.7 A/D转换接口 149
6.7.1 A/D转换器简介 149
6.7.2 A/D转换的主要指标 150
6.7.3 S3C2410X A/D转换接口 151
6.7.4 A/D转换器应用实例 153
6.8 中断控制器 155
6.8.1 S3C2410X中断概述 155
6.8.2 中断控制相关寄存器 158
6.8.3 S3C2410X中断响应与返回 163
6.8.4 中断编程举例 164
思考题与习题 165
第7章 嵌入式Linux操作系统 166
7.1 操作系统简介 166
7.1.1 操作系统 166
7.1.2 嵌入式操作系统 167
7.2 嵌入式Linux操作系统 169
7.2.1 Linux介绍 169
7.2.2 Linux作为嵌入式操作系统的
优势 171
7.2.3 进程管理 172
7.2.4 存储管理 183
7.2.5 文件系统 191
7.2.6 设备管理 196
7.3 嵌入式Linux操作系统的构建 203
7.3.1 嵌入式Linux引导过程 203
7.3.2 Linux启动流程 211
7.3.3 嵌入式Linux的移植 212
7.4 嵌入式Linux系统的软件开发
基础 222
7.4.1 Linux常用命令介绍 222
7.4.2 Linux系统下的vi编辑器 225
7.5 嵌入式Linux下交叉开发环境的
建立与软件开发过程 226
7.5.1 嵌入式教学实验系统简介 226
7.5.2 嵌入式交叉开发环境的建立 230
7.5.3 基于Linux的应用程序的开发
步骤 237
思考题与练习 239
第8章 嵌入式系统设计方法及开发
实例 240
8.1 引言 240
8.2 软件工程及嵌入式软件工程 242
8.2.1 概述 243
8.2.2 软件需求 245
8.2.3 软件设计 246
8.2.4 统一建模语言 247
8.2.5 嵌入式软件编程 251
8.3 基于嵌入式系统的雷达智能
停车位应用实例 252
8.3.1 背景及简介 252
8.3.2 设计目标 253
8.3.3 总体结构和原理 254
8.3.4 系统前端及嵌入式信号处理 255
8.3.5 无线通信模块开发 262
8.4 基于Android操作系统平台的点餐
系统应用实例 266
8.4.1 Android简介 266
8.4.2 Android架构 267
8.4.3 Android未来及前景 268
8.4.4 Android应用程序基础 269
8.4.5 Android开发环境搭建 271
8.4.6 Android工程目录结构 271
8.4.7 点餐系统实现 272
思考题与练习 281
附录A GPIO端口寄存器及引脚配置 282
附录B 杂项控制寄存器 284
附录C 外中断相关控制寄存器 285
附录D 通用状态寄存器 287
参考文献 288