第1章 嵌入式系统基础 1
1.1引言 1
1.2嵌入式系统的发展历史 2
1.3嵌入式系统的特点 3
1.4嵌入式系统的组成 4
1.4.1嵌入式系统硬件组成 5
1.4.2嵌入式系统软件组成 6
1.5 ARM微处理器 6
1.5.1计算机体系结构与指令集 7
1.5.2 ARM体系结构版本 8
1.5.3 ARM处理器核 9
1.5.4主要ARM芯片供应商 11
本章小结 12
习题 13
第2章ARM体系结构 14
2.1 ARM核及基于ARM核的芯片结构 14
2.1.1 ARM内核 15
2.1.2基于ARM核的芯片结构 15
2.2 ARM工作状态和工作模式 16
2.2.1 ARM处理器工作状态 16
2.2.2 ARM处理器工作模式 17
2.3 ARM状态下寄存器组织 17
2.3.1通用寄存器 18
2.3.2程序状态寄存器 19
2.4 Thumb状态下寄存器组织 21
2.5 ARM存储器组织 23
2.5.1编址方式与寻址空间 23
2.5.2数据类型 23
2.5.3存储格式 24
2.6异常 24
2.6.1 ARM异常类型 24
2.6.2 ARM异常的处理 25
2.6.3 ARM异常的优先级 28
本章小结 28
习题 29
第3章ARM指令系统 30
3.1 ARM处理器的指令格式 30
3.1.1 ARM指令集的特点 30
3.1.2 ARM指令的格式 31
3.2 ARM指令的寻址方式 32
3.2.1立即寻址 33
3.2.2寄存器寻址 33
3.2.3寄存器移位寻址 34
3.2.4直接寻址 35
3.2.5寄存器间接寻址 35
3.2.6基址变址寻址 36
3.2.7多寄存器寻址 37
3.2.8堆栈寻址 38
3.2.9相对寻址 40
3.3 ARM指令集 40
3.3.1加载存储指令 40
3.3.2数据处理指令 44
3.3.3分支指令 47
3.3.4程序状态寄存器访问指令 48
3.3.5异常中断产生指令 49
3.4 Thumb指令集 50
本章小结 52
习题 52
第4章ARM汇编语言程序设计基础 55
4.1 ARM汇编语言的程序结构 55
4.1.1一个简单的ARM汇编程序例子 55
4.1.2汇编器伪指令 57
4.1.3汇编语言的规范 59
4.2 ARM汇编语言程序设计 60
4.2.1顺序程序 61
4.2.2分支程序 64
4.2.3循环程序 66
4.2.4子程序 69
4.2.5基于查表法的程序设计 72
4.3 C语言与汇编混合编程 75
4.3.1 C语言内嵌汇编代码 75
4.3.2 C语言与汇编文件变量互访 77
4.3.3 ARM过程调用标准APCS 79
4.3.4 C语言程序调用汇编子程序 80
4.3.5汇编程序调用C语言函数 81
本章小结 82
习题 82
第5章LPC2000系列处理器原理 84
5.1 LPC2000系列处理器简介 84
5.1.1 LPC2000系列处理器特性 84
5.1.2 LPC2000系列处理器结构 85
5.2处理器引脚配置 86
5.3存储器管理 93
5.3.1存储器映射 93
5.3.2存储器重映射及系统的引导与启动 95
5.4系统控制模块 98
5.4.1概述 98
5.4.2时钟部件 100
5.4.3系统复位 101
5.4.4功率控制 101
5.4.5 ARM中断系统 102
本章小结 105
习题 106
第6章 LPC2000系列微处理器接口技术 107
6.1 GPIO 107
6.1.1概述 107
6.1.2引脚描述 108
6.1.3寄存器描述 108
6.1.4应用举例 109
6.2定时器 110
6.2.1概述 110
6.2.2引脚描述 111
6.2.3结构 112
6.2.4寄存器描述 113
6.2.5应用举例 114
6.3 UART串口通信 117
6.3.1概述 117
6.3.2引脚描述 117
6.3.3结构 117
6.3.4寄存器描述 118
6.3.5应用举例 120
6.4其他外设接口 122
6.4.1看门狗 122
6.4.2实时时钟 124
6.4.3模数转换器 125
6.4.4 I2C接口 127
6.4.5 SPI接口 128
6.4.6脉宽调制器(PWM)接口 130
本章小结 133
习题 133
第7章 嵌入式操作系统 134
7.1嵌入式操作系统概述 134
7.1.1什么是嵌入式操作系统 135
7.1.2嵌入式操作系统的特点 136
7.1.3嵌入式操作系统的分类 136
7.2主流嵌入式操作系统简介 137
7.3 μC/OS-Ⅱ操作系统 139
7.3.1 μC/OS-Ⅱ简介 140
7.3.2 μC/OS-Ⅱ内核结构 141
7.3.3任务 142
7.3.4任务调度 148
7.3.5 μC/OS-Ⅱ的初始化与启动 152
7.3.6任务管理 153
7.3.7中断处理和时钟管理 153
7.3.8任务间同步与通信 156
7.3.9内存管理 162
本章小结 165
习题 165
第8章 基于μC/OS-Ⅱ的嵌入式 167
应用程序开发 167
8.1嵌入式应用程序开发的特点 167
8.1.1开发调试环境的建立 167
8.1.2基于嵌入式处理器的直接编程技术 168
8.1.3基于嵌入式操作系统的编程技术 169
8.2 μC/OS-Ⅱ应用程序结构分析 170
8.3 μC/OS-Ⅱ程序设计技术 173
8.3.1任务的划分与设计 173
8.3.2任务间的行为同步方法 176
8.3.3共享资源的同步方法 183
8.3.4任务间的数据通信方法 186
8.4 μC/OS-Ⅱ在ARM微处理器上的移植 188
8.4.1 μC/OS-Ⅱ对处理器的要求 188
8.4.2 μC/OS-Ⅱ移植所涉及的文件 189
8.4.3 μC/OS-Ⅱ的移植过程及内容 190
8.4.4 μC/OS-Ⅱ的裁剪 196
8.5应用程序设计及实例 198
8.5.1硬件及其运行环境初始化 198
8.5.2应用程序设计 211
本章小结 218
习题 219
附录A ARM开发工具ADS 220
A.1 ADS简介 220
A.1.1嵌入式系统开发流程 220
A.1.2 ADS环境下ARM程序开发方式 221
A.1.3 ADS工具介绍 222
A.2 ADS及AXD使用简述 222
A.2.1创建工程项目 222
A.2.2工程项目管理窗口 224
A.2.3 ADS编泽器 226
A.2.4 ADS链接器 227
A.2.5 AXD使用步骤 228
A.3 ADS环境汇编程序设计实例 228
参考文献 236