本书共分13章第1章简单介绍嵌入式系统的基本概念和特点,重点给出嵌入式系统软件开发所面临的问题和常见的开发流程。第2章主要从嵌入式系统的体系结构、流水线结构、存储器结构、编程结构及寄存器结构等方面进行介绍。第3章详细介绍ARM系统的指令寻址方式和指令系统,着重介绍32位ARM指令集。第4章着重从ARM内核的基本结构、ARM存储器组织、ARM处理器模式、ARM的中断和异常等方面介绍以ARM为内核的嵌入式系统结构。第5章详细介绍在ARM系统中存储器的系统结构、存储器配置、存储器扩展与访问、存储器的编程与应用等硬件开发中必不可少的环节。第6章详细介绍ARM系统中常用的接口。第7章详细介绍ARM系统I/O端口的设计与管理,以及嵌入式系统中I/O端口的应用。第8章从中断源、中断模式、中断管理以及不同ARM芯片的中断管理器等诸方面详细介绍ARM系统中的中断系统。第9章介绍ARM系统中常用的人机接口技术。第10章介绍ARM系统中常用的开发环境与开发工具,以及如何选择,并详细介绍ADS1.2集成开发环境的使用。第11章简单介绍ARM嵌入式操作系统的基本概念和特点。第12章详细介绍开发具有自主产权的实时操作系统的必要性。
本书是嵌入式系统软硬件开发理论与应用实践相结合的专业书籍。它以ARM系列为核心,从存储器扩展、I/O口扩展、中断系统及各种接口的扩展与应用,到软件开发、系统移植等,完整地讲述了嵌入式系统的基础知识及其软硬件开发技术;并针对开发具有自主产权的实时操作系统,讲述了其中的中断管理技术、存储器管理技术以及人机接口管理技术等。
本书可作为普通高等院校高年级学生教材,也可作为基于ARM的硬件设计、系统软件开发设计参考书。
第1章 嵌入式系统概述
1.1 嵌入式系统的基本概念1
1.2 嵌入式系统的特点3
1.3 嵌入式系统的应用6
1.4 嵌入式系统的开发9
1.4.1 嵌入式系统开发考虑的要素9
1.4.2 软硬件协同设计9
1.4.3 嵌入式系统硬件开发10
1.4.4 嵌入式软件开发的特点和技术挑战13
1.4.5 嵌入式软件开发环境14
1.4.6 嵌入式应用软件开发过程17
1.4.7 嵌入式系统的开发流程21
习 题23
第2章 嵌入式系统的结构
2.1 嵌入式系统的体系结构24
2.1.1 嵌入式系统体系结构简介24
2.1.2 嵌入式系统体系结构的重要性26
2.1.3 嵌入式系统体系结构模型27
2.2 嵌入式系统的流水线结构28
2.3 嵌入式系统的存储器结构31
2.4 嵌入式系统的编程结构33
习 题35
第3章 嵌入式系统的指令结构及指令系统
3.1 嵌入式处理器寻址方式36
3.2 指令集介绍38
3.2.1 ARM微处理器的指令的分类与格式38
3.2.2 指令的条件域40
3.3 ARM指令集40
3.3.1 跳转指令41
3.3.2 数据处理指令42
3.3.3 乘法指令与乘加指令47
3.3.4 程序状态寄存器访问指令50
3.3.5 加载/存储指令51
3.3.6 批量数据加载/存储指令53
3.3.7 数据交换指令54
3.3.8 移位指令(操作)54
3.3.9 协处理器指令56
3.3.10 异常产生指令58
3.4 Thumb指令集58
习 题59
第4章 以ARM为核心的嵌入式系统结构
4.1 ARM核概述61
4.1.1 ARM公司简介61
4.1.2 ARM核的特点62
4.2 ARM内核的基本结构63
4.2.1 ARM内核63
4.2.2 ARM扩展功能块64
4.2.3 ARM启动方式67
4.3 ARM处理器模式68
4.4 ARM的存储器结构69
4.4.1 ARM存储方法69
4.4.2 存储空间管理单元MMU70
4.5 ARM的编程结构72
4.5.1 ARM微处理器的工作状态72
4.5.2 指令长度及数据类型72
4.6 ARM的寄存器结构73
4.6.1 ARM状态下的寄存器组织73
4.6.2 Thumb状态下的寄存器组织74
4.6.3 ARM寄存器74
4.7 ARM的流水线及时序78
4.7.1 ARM流水线78
4.7.2 ARM时序79
4.8 ARM的中断与异常80
4.8.1 ARM异常类型80
4.8.2 异常的响应及返回81
4.8.3 异常的描述82
4.8.4 异常的处理84
习 题85
第5章 ARM系统中的存储器设计与管理
5.1 ARM存储器系统概述86
5.2 ARM存储器系统结构86
5.2.1 ARM存储数据类型和存储格式87
5.2.2 ARM存储器层次简介88
5.3 ARM存储器配置88
5.3.1 存储器映射88
5.3.2 系统初始化90
5.3.3 地址映射模式92
5.3.4 其他调试方法93
5.4 ARM存储器访问与扩展95
5.4.1 S3C44B0X存储控制器95
5.4.2 在S3C44B0X中存储器扩展105
5.5 ARM存储器管理及应用编程109
5.5.1 S3C44B0X芯片简介110
5.5.2 S3C44B0X芯片存储空间划分110
5.5.3 Flash的接口设计111
5.5.4 SDRAM的接口设计114
5.5.5 硬件管理软件设计118
习 题121
第6章 ARM系统中的接口设计与管理
6.1 概 述122
6.2 UART接口设计123
6.3 IIC接口设计126
6.4 SPI接口设计126
6.5 USB接口设计128
6.5.1 USB接口背景128
6.5.2 USB接口原理129
6.5.3 USB总线优缺点130
6.5.4 USB系统拓扑结构131
6.5.5 USB总线数据传输132
6.5.6 USB典型设计与应用132
6.6 RJ45接口设计134
6.6.1 RJ45接口简介134
6.6.2 10M/100M以太网接口电路134
6.7 JTAG接口设计139
6.8 其他总线接口设计142
6.8.1 寻址空间142
6.8.2 电源管理设计143
6.8.3 RESET电路设计145
6.8.4 频率电路设计145
习 题146
第7章 ARM系统的I/O端口设计与管理
7.1 概 述147
7.2 ARM核I/O端口配置148
7.2.1 ARM7中的I/O端口配置148
7.2.2 ARM9中的I/O端口配置149
7.3 ARM核I/O端口功能描述154
7.4 ARM核I/O端口寄存器控制155
7.4.1 ARM7中的S3C4510B I/O端口寄存器控制155
7.4.2 ARM9中的S3C241X I/O端口寄存器控制157
7.5 ARM核I/O端口应用编程175
习 题177
第8章 ARM系统中的中断系统
8.1 概 述178
8.2 ARM系统中断控制器181
8.3 ARM系统中断源183
8.4 ARM系统中断模式185
8.5 ARM系统中断控制器的控制寄存器185
8.5.1 S3C44B0X中断控制器的控制寄存器186
8.5.2 S3C4510B中断控制器的控制寄存器191
8.5.3 S3C2410X中断控制器的控制寄存器193
8.6 ARM系统中断应用编程201
习 题208
第9章 ARM系统中的人机接口技术
9.1 概 述210
9.2 ARM系统中的键盘接口211
9.2.1 键盘接口211
9.2.2 常见的键盘接口214
9.2.3 实 例216
9.3 ARM系统中的LCD接口220
9.3.1 LCD接口 220
9.3.2 S3C44B0X LCD控制器222
9.3.3 S3C2410X LCD控制器230
9.3.4 应用实例261
9.4 ARM系统中的PS/2接口268
9.4.1 PS/2接口和协议268
9.4.2 PS/2接口鼠标的工作模式和协议
数据包格式270
9.4.3 PS/2接口鼠标设计与实现271
9.5 ARM系统中的人机接口应用273
习 题278
第10章 ARM系统软件开发环境与开发工具
10.1 概 述279
10.1.1 嵌入式系统开发所面临的问题279
10.1.2 开发环境280
10.1.3 选择合适的嵌入式系统软硬件
调试工具285
10.2 常用ARM系统软件开发工具介绍286
10.2.1 开发工具综述286
10.2.2 如何选择开发工具294
10.3 常用ARM系统软件开发环境介绍295
10.3.1 建立ARM系统软件开发环境295
10.3.2 RealView MDK 集成开发环境的使用297
习 题328
第11章 ARM嵌入式操作系统
11.1 概 述329
11.1.1 嵌入式操作系统基本概念及特点329
11.1.2 嵌入式操作系统解析331
11.1.3 实时操作系统解析332
11.1.4 目前最流行的嵌入式操作系统333
11.2 ARM实时操作系统337
11.2.1 基本概念337
11.2.2 ARM实时操作系统特征339
11.2.3 流行的ARM实时操作系统340
11.3 霤/OS-Ⅱ操作系统341
11.3.1 霤/OS-Ⅱ的主要特点341
11.3.2 霤/OS-Ⅱ内核工作原理342
11.4 霤Linux操作系统345
11.4.1 霤Linux简介345
11.4.2 霤Linux架构346
11.4.3 霤Linux的设计特征347
11.5 WinCE 5.0操作系统349
11.5.1 Windows CE简介349
11.5.2 Windows CE的结构350
11.5.3 Windows CE的特点351
11.5.4 Windows CE实时性353
11.5.5 Windows CE 5.0的新特性354
习 题355
第12章 开发具有自主产权的实时操作系统
12.1 概 述356
12.2 开发自主产权实时操作系统的
必要性357
12.3 实时操作系统中断管理技术358
12.3.1 简 介358
12.3.2 中断管理模式360
12.3.3 嵌入式内核接管中断的处理机制361
12.3.4 中断管理模型363
12.4 实时操作系统存储器管理技术364
12.4.1 对内存分配的要求365
12.4.2 对内存分配的策略365
12.4.3 内存动态分配管理366
12.5 实时操作系统人机接口管理技术370
12.5.1 键盘的管理策略370
12.5.2 LED/LCD的管理策略371
12.6 实时操作系统应用实例372
习 题385
第13章 系统移植技术
13.1 概 述387
13.2 霤/OS-Ⅱ操作系统移植387
13.2.1 移植的目标系统388
13.2.2 开发工具389
13.2.3 霤/OS-Ⅱ移植390
13.2.4 测试移植代码401
13.3 霤Linux操作系统移植402
13.3.1 创建开发环境402
13.3.2 编译与移植霤Linux404
13.4 WinCE 5.0 操作系统移植408
13.4.1 Windows CE 操作系统简介408
13.4.2 Windows CE操作系统架构409
13.4.3 Windows CE Boot Loader开发411
13.4.4 Windows CE的OAL412
13.4.5 Windows CE操作系统的创建和调试415
习 题417
参考文献418