第1章 ARM体系结构基础 1
1.1 ARM支持的数据类型和存储器结构 1
1.2 ARM处理器的工作状态和运行模式 3
1.3 寄存器组织 4
1.3.1 寄存器分类 4
1.3.2 通用寄存器 6
1.3.3 程序状态寄存器 7
1.4 异常 9
1.4.1 ARM体系结构所支持的异常类型 9
1.4.2 各类异常的具体描述 10
1.4.3 对异常的响应和返回 12
1.5 ARM指令集 13
1.5.1 ARM指令的功能与格式 13
1.5.2 指令的条件码 14
1.6 ARM指令的寻址方式 15
1.6.1 寄存器寻址 15
1.6.2 立即寻址 15
1.6.3 寄存器移位寻址 16
1.6.4 寄存器间接寻址 16
1.6.5 基址寻址 17
1.6.6 相对寻址 17
1.6.7 多寄存器寻址 17
1.6.8 堆栈寻址 18
1.6.9 块复制寻址 18
1.6.10 ARM伪指令 19
1.7 Thumb指令集 20
1.8 ARM汇编语言编程 21
1.8.1 ARM汇编语言规范 21
1.8.2 汇编伪指令 21
1.8.3 程序设计举例 22
1.8.4 汇编语言与C/C++混合编程 24
1.9 启动代码 24
1.9.1 Startup.s文件 25
1.9.2 IRQ.s文件 28
1.9.3 Target.c文件 29
1.9.4 Target.h文件 30
1.9.5 config.h文件 31
1.9.6 分散加载文件 31
第2章 Proteus for ARM7虚拟仿真 34
2.1 Proteus for ARM简介 34
2.1.1 Proteus支持的ARM模型 34
2.1.2 Proteus ELF/DWARF装载器 36
2.1.3 Proteus LPC2000的调试窗口 37
2.2 集成环境ISIS 41
2.3 原理图绘制与源代码仿真调试 43
2.4 原理图与Keil环境联机仿真调试 48
第3章 LPC213x ARM处理器 55
3.1 LPC213x处理器特性与存储器结构 55
3.1.1 主要特性 55
3.1.2 存储器结构 56
3.1.3 存储器重映射和Boot Block 58
3.1.4 存储器加速模块 61
3.2 系统控制模块 63
3.2.1 时钟频率控制 63
3.2.2 VPB分频器 67
3.2.3 功率控制 68
3.2.4 复位 70
3.2.5 唤醒定时器 71
3.3 外部中断输入 72
3.4 向量中断控制器VIC 75
3.4.1 VIC寄存器 76
3.4.2 中断源 79
3.4.3 VIC使用注意事项 81
3.5 引脚功能配置 82
3.5.1 引脚选择寄存器 82
3.5.2 引脚配置示例 84
3.6 系统控制应用举例 84
3.6.1 存储器映射 84
3.6.2 锁相环 88
3.6.3 存储器加速模块 92
3.7 VIC中断应用举例 93
3.7.1 外部中断 94
3.7.2 向量中断 96
3.7.3 嵌套中断 97
3.7.4 快速中断 99
3.7.5 软件中断 100
第4章 LPC2138片内集成功能应用技术 103
4.1 通用输入/输出端口GPIO 103
4.1.1 主要特性 103
4.1.2 寄存器描述 103
4.1.3 应用举例 105
4.2 通用异步接收发送器UART 110
4.2.1 主要特性 110
4.2.2 寄存器描述 111
4.2.3 应用举例 119
4.3 I2C接口 125
4.3.1 主要特性 125
4.3.2 操作模式 126
4.3.3 寄存器描述 129
4.3.4 应用举例 132
4.4 SPI接口 136
4.4.1 主要特性 136
4.4.2 SPI数据传输 136
4.4.3 寄存器描述 138
4.4.4 应用举例 140
4.5 SSP接口 145
4.5.1 主要特性 145
4.5.2 寄存器描述 145
4.5.3 应用举例 148
4.6 定时器/计数器 151
4.6.1 主要特性 151
4.6.2 寄存器描述 152
4.6.3 应用举例 157
4.7 脉宽调制器PWM 165
4.7.1 主要特性 165
4.7.2 寄存器描述 167
4.7.3 应用举例 173
4.8 A/D转换器 182
4.8.1 主要特性 182
4.8.2 寄存器描述 182
4.8.3 应用举例 186
4.9 D/A转换器 192
4.9.1 主要特性 192
4.9.2 寄存器描述 192
4.9.3 应用举例 193
4.10 实时时钟 198
4.10.1 主要特性 198
4.10.2 寄存器描述 198
4.10.3 应用举例 203
4.11 看门狗定时器 208
4.11.1 主要特性 208
4.11.2 寄存器描述 209
4.11.3 应用举例 211
第5章 LPC2138片外扩展功能应用技术 216
5.1 液晶显示器LCD接口技术 216
5.1.1 点阵字符型液晶显示模块接口技术 216
5.1.2 12864点阵图形液晶显示模块接口技术 226
5.1.3 T6963C点阵图形液晶显示模块接口技术 235
5.2 用DS18B20和LPC2138实现的数字温度计 244
5.3 用DS1302和LPC2138实现的万年历 252
5.4 SD卡与LPC2138的接口及应用 265
5.4.1 SD卡简介 265
5.4.2 FAT16文件系统 267
5.4.3 SD卡接口应用举例 270
5.5 网络芯片ENC28J60与LPC2138的接口及应用 284
5.5.1 ENC28J60的功能模块与引脚分布 284
5.5.2 ENC28J60主要特性 286
5.5.3 ENC28J60应用举例 288
第6章 μC/OS-II在LPC2138上的移植与应用 305
6.1 μC/OS-II简介 305
6.2 μC/OS-II在LPC2138上的移植 306
6.2.1 编写OS_CPU.H文件 308
6.2.2 编写OS_CPU_C.C文件 309
6.2.3 编写OS_CPU_A.S文件 314
6.2.4 关于中断 317
6.2.5 挂接SWI软件中断 318
6.2.6 中断服务程序 319
6.3 编写μC/OS-II应用程序 319
6.3.1 任务管理 319
6.3.2 任务管理应用编程举例 322
6.4 任务的同步与通信 326
6.4.1 信号量 326
6.4.2 信号量应用编程举例 328
6.4.3 消息邮箱 331
6.4.4 消息邮箱应用编程举例 334
参考文献 338