第1章嵌入式系统概述 1
1.1嵌入式系统基础 2
1.1.1嵌入式系统的发展历史 2
1.1.2嵌入式系统的定义与特点 4
1.1.3嵌入式系统的组成 5
1.1.4嵌入式系统的应用领域 6
1.1.5嵌入式技术的发展趋势 7
1.2嵌入式系统的硬件组成 8
1.2.1嵌入式处理器 9
1.2.2嵌入式外围设备与接口 10
1.2.3典型的嵌入式处理器与开发板 11
1.3嵌入式系统的软件组成 13
1.3.1嵌入式软件的基本特点与分类 13
1.3.2嵌入式软件开发环境 15
1.3.3嵌入式软件开发的要点 16
1.3.4嵌入式操作系统 18
小结 19
第2章ARM微处理器 20
2.1 ARM微处理器概述 21
2.1.1 ARM微处理器的技术特点 21
2.1.2ARM微处理器的应用领域 22
2.2ARM微处理器体系结构 22
2.2.1 RISC体系结构 22
2.2.2 ARM体系结构版本 23
2.2.3 ARM体系结构的变种及版本命名格式 25
2.2.4 ARM微处理器系列 26
2.3.ARM微处理器的编程模型 30
2.3.1 ARM微处理器的数据类型 30
2.3.2 ARM微处理器的工作状态 30
2.3.3 ARM微处理器的工作模式 31
2.3.4 ARM微处理器的寄存器组织 32
2.3.5 ARM体系中的存储模式 36
2.3.6 I/O端口的访问方式 36
2.3.7异常 37
2.4 ARM微处理器的选型 38
小结 39
第3章ARM程序设计基础 40
3.1 ARM指令系统 41
3.1.1 ARM指令系统概述 41
3.1.2 ARM寻址方式 43
3.1.3 ARM指令集 46
3.1.4 Thumb指令集 56
3.2 ARM汇编语言和汇编语言编程规范 58
3.2.1 ARM汇编语言语句格式 58
3.2.2 ARM汇编器的伪操作 59
3.2.3 ARM汇编器支持的伪指令 69
3.3 ARM汇编语言程序格式 71
3.3.1 ARM汇编语言程序中常用的符号 71
3.3.2汇编语言程序中的表达式和运算符 74
3.3.3 ARM汇编语言程序的基本结构 76
3.3.4 ARM汇编程序设计举例 77
3.4汇编语言与C/C++语言的混合编程 80
3.4.1在C/C++程序中嵌入汇编指令 80
3.4.2在ARM汇编程序和C/C++程序之间进行变量的互访 81
3.4.3汇编程序、C/C++程序间的相互调用 82
小结 84
第4章 嵌入式系统硬件设计 85
4.1嵌入式最小系统 86
4.2 S3C2440A概述 87
4.3 S3C2440A外围部件工作原理 88
4.3.1存储器控制器 89
4.3.2 Nand Flash控制器 97
4.3.3中断控制器 105
4.3.4通用I/O口 121
4.3.5串行通信 130
4.3.6定时器 141
4.4嵌入式系统硬件基本电路 149
4.5 S3C2440A启动程序 152
小结 156
第5章 嵌入式操作系统基础 157
5.1操作系统的基本概念 158
5.1.1操作系统的定义 158
5.1.2操作系统的功能 159
5.1.3操作系统的基本特征 161
5.1.4进程和线程的基本概念 162
5.1.5进程的同步与互斥 164
5.2中断和中断处理 165
5.2.1中断 165
5.2.2中断处理与中断返回 166
5.3单内核与微内核 167
5.3.1内核 167
5.3.2单内核操作系统与微内核操作系统 168
5.4操作系统的类型 169
5.4.1单用户操作系统 169
5.4.2批处理操作系统 170
5.4.3分时操作系统 170
5.4.4实时操作系统 171
5.5当今流行的嵌入式操作系统简介 172
5.5.1嵌入式操作系统的发展 172
5.5.2使用嵌入式操作系统的必要性 173
5.5.3嵌入式操作系统选型 174
5.5.4常见的开源嵌入式操作系统简介 175
5.5.5常见的商业嵌入式操作系统简介 176
5.6 Linux系统简介 178
5.6.1 Linux的特性 178
5.6.2 Linux版本及其特点 180
5.6.3嵌入式Linux系统及其应用前景 180
小结 181
第6章 嵌入式Linux开发基础 182
6.1 Linux系统的结构 183
6.1.1 Linux内核 183
6.1.2 Linux Shell 184
6.1.3 Linux文件系统 185
6.1.4 Linux实用工具 186
6.2 Linux常用命令 187
6.2.1磁盘管理命令 187
6.2.2文件操作命令 189
6.2.3联机帮助命令 194
6.3 Linux C编辑、编译、调试工具 195
6.3.1 Linux下C语言编程概述 195
6.3.2 vi编辑器 197
6.3.3 emacs编辑器 199
6.3.4 gcc编译工具 203
6.3.5 gdb调试工具 205
6.3.6 make的使用和Makefile文件的编写 210
6.3.7版本控制 214
6.4 Linux C编程基础 215
6.4.1 Linux的进程 215
6.4.2 Linux下的进程控制 216
6.4.3多线程编程入门 219
6.5调试程序 222
6.5.1调试多线程程序 222
6.5.2调试多进程程序 225
6.6交叉编译 227
6.6.1嵌入式系统开发模型 228
6.6.2交叉编译工具链 228
6.6.3交叉编译实例 229
小结 230
第7章 构建嵌入式Linux系统 232
7.1嵌入式Linux系统的构建流程 233
7.1.1嵌入式Linux系统的组成 233
7.1.2嵌入式Linux系统的构建 234
7.2宿主机和目标机之间的通信 235
7.2.1宿主机和目标机 235
7.2.2 Windows的超级终端 235
7.2.3 Linux的minicom 236
7.2.4 TFTP协议 238
7.2.5 NFS网络共享 239
7.3 Bootloader 240
7.3.1 Bootloader的作用 240
7.3.2 Bootloader的启动方式 241
7.3.3 Bootloader的两个阶段 241
7.3.4常用Bootloader简介 242
7.4 Linux内核配置和移植 243
7.4.1 Linux内核移植准备 243
7.4.2内核的配置 253
7.4.3 Linux内核的编译 255
7.5构建嵌入式根文件系统 256
7.5.1 Linux下的文件系统 256
7.5.2嵌入式Linux的文件系统 257
7.5.3 Linux根文件系统目录结构 259
7.5.4制作根文件系统 262
小结 264
第8章 基于Web的远程监控系统的设计实例 265
8.1基于Web的远程监控系统简介 266
8.1.1嵌入式Web服务器和远程监控系统 266
8.1.2基于嵌入式Web的远程监控系统应用 267
8.2系统架构设计 270
8.2.1网络架构 270
8.2.2硬件架构设计 271
8.2.3软件架构设计 272
8.3系统软件实现 272
8.3.1嵌入式Web服务器的移植和配置 273
8.3.2 HTML中表单的使用 277
8.3.3 CGI程序设计 289
8.4 Linux设备驱动程序设计 302
8.4.1 Linux下的驱动程序设计基础 302
8.4.2基于Linux 2.6内核的设备驱动程序举例 304
8.5基于Web的LED远程控制系统设计 308
8.5.1 LED驱动程序设计 308
8.5.2表单设计 311
8.5.3 CGI程序的编写 312
小结 313
参考文献 315