第1章 ARM Cortex-M3微处理器 1
1.1 ARM CORTEX系列微处理器简介 1
1.1.1 Cortex-A系列 2
1.1.2 Cortex-R系列 2
1.1.3 Cortex-M系列 2
1.1.4 经典ARM处理器的Cortex替代方案 3
1.2 ARM CORTEX-M3微处理器 4
1.2.1 Cortex-M3的版本 5
1.2.2 Cortex-M3处理器应用领域 8
1.2.3 Cortex-M3处理器的实现 8
1.3 从ARM7升级到ARM CORTEX-M3 9
1.4 NXP公司CORTEX-M3系列微处理器 10
1.4.1 LPC1300系列 11
1.4.2 LPC1700系列 11
1.4.3 LPC1800系列 13
1.5 ARM CORTEX-M3微处理器开发工具 14
1.5.1 Cortex-M3开发套件 15
1.5.2 嵌入式操作系统支持 20
习题1 21
第2章 ARM Cortex-M3内核体系结构 22
2.1 CORTEX-M3处理器组件 22
2.1.1 处理器内核 23
2.1.2 嵌套向量中断控制器NVIC 23
2.1.3 总线矩阵 24
2.1.4 存储器保护单元MPU 24
2.1.5 系统调试组件 24
2.1.6 调试端口SW/SWJ-DP 26
2.1.7 AHB访问端口AHB-AP 27
2.1.8 唤醒中断控制器WIC 27
2.1.9 ROM表 27
2.2 总线结构 28
2.3 流水线 29
2.4 指令集 29
2.5 编程模型 30
2.5.1 工作模式 30
2.5.2 工作状态 30
2.5.3 特权访问和用户访问 30
2.5.4 主堆栈和进程堆栈 32
2.5.5 寄存器组 33
2.5.6 数据类型 38
2.6 存储器系统 38
2.6.1 存储器映射 38
2.6.2 位带操作 40
2.6.3 存储器格式 41
2.7 系统时钟和复位 43
2.7.1 时钟 43
2.7.2 复位 43
2.7.3 复位序列 45
2.8 电源管理 46
2.9 异常 47
2.9.1 异常模型 47
2.9.2 异常类型 48
2.9.3 异常优先级 49
2.9.4 异常处理 50
2.10 调试系统 52
习题2 53
第3章 LPC1700系列微处理器基础 54
3.1 LPC1700微处理器结构 54
3.2 存储器系统 55
3.2.1 存储器映射 55
3.2.2 APB外设地址 56
3.2.3 存储器重映射 57
3.2.4 片上Flash存储器系统 57
3.2.5 片上静态RAM 57
3.2.6 Flash存储器加速器 57
3.2.7 Flash存储器接口和编程 59
3.3 系统控制单元 60
3.3.1 复位电路 60
3.3.2 掉电检测 62
3.3.3 外部中断输入 62
3.3.4 系统控制和状态寄存器 64
3.4 系统时钟 65
3.4.1 振荡器 66
3.4.2 时钟源选择多路复用 68
3.4.3 锁相环PLL0 68
3.4.4 锁相环PLL1 76
3.4.5 时钟分频器 80
3.4.6 外部时钟输出引脚 82
3.5 实时时钟RTC 83
3.5.1 RTC引脚描述和配置 83
3.5.2 寄存器描述 84
3.5.3 RTC中断 89
3.5.4 校准过程 89
3.5.5 RTC基本操作 90
3.5.6 RTC使用注意事项 92
3.6 电源管理 92
3.6.1 功率模式控制寄存器 92
3.6.2 外设功率控制寄存器 93
3.6.3 睡眠模式 95
3.6.4 深度睡眠模式 95
3.6.5 掉电模式 95
3.6.6 深度掉电模式 96
3.6.7 唤醒定时器 96
3.7 引脚及I/O功能配置 96
3.7.1 引脚布局 96
3.7.2 引脚连接模块 99
3.8 通用输入/输出GPIO 108
3.8.1 GPIO引脚描述 108
3.8.2 GPIO寄存器描述 114
3.8.3 GPIO使用示例 123
3.9 嵌套向量中断控制器NVIC 123
3.9.1 中断源 124
3.9.2 向量表的重新映射 125
3.9.3 寄存器描述 126
3.10 定时器 134
3.10.1 通用定时器0/1/2/3 135
3.10.2 重复中断定时器RIT 142
3.10.3 看门狗定时器WDT 145
3.10.4 系统节拍定时器 149
3.11 调试接口 153
3.11.1 概述 153
3.11.2 调试端口引脚 153
3.11.3 调试接口电路 154
3.11.4 调试注意事项 155
习 题 3 155
第4章 LPC1700系列微处理器
高级接口 156
4.1 通用异步收发器UART 156
4.1.1 概述 156
4.1.2 UART接口引脚与配置 156
4.1.3 UART接口电路设计 157
4.1.4 寄存器功能描述 159
4.1.5 UART基本操作 168
4.1.6 UART程序示例 171
4.2 串行总线接口SPI和I2C 175
4.2.1 SPI接口 175
4.2.2 I2C接口 179
4.3 脉宽调制器PWM 193
4.3.1 概述 193
4.3.2 引脚描述和配置 194
4.3.3 寄存器描述 195
4.3.4 PWM波形举例 200
4.3.5 PWM程序示例 202
4.4 正交编码接口QEI 203
4.4.1 QEI简介 203
4.4.2 功能概述 203
4.4.3 引脚描述和配置 206
4.4.4 寄存器描述 207
4.4.5 QEI基本操作 213
4.5 模数转换器和数模转换器 214
4.5.1 模数转换器 214
4.5.2 数模转换器 218
4.6 USB总线接口 219
4.6.1 USB设备控制器 220
4.6.2 USB主机控制器 263
4.6.3 USB OTG控制器 265
4.6.4 USB固件库 282
习题4 289
第5章 基于CMSIS接口标准
软件设计 290
5.1 CMSIS标准简介 290
5.2 CMSIS代码规范 292
5.3 CMSIS文件结构 293
5.4 CMSIS例子程序 298
习题5 300
附录A Cortex-M3指令集 301
A.1 指令集汇总 301
A.2 内在函数 303
附录B 缩写 305
附录C 术语表 307
参考文献 310