简介
目录
目 录
前 言
第1章 嵌入式系统概述1
1.1 嵌入式系统1
1.1.1 嵌入式系统的定义1
1.1.2 嵌入式系统的历史1
1.1.3 嵌入式系统的发展趋势2
1.2 嵌入式处理器3
1.3 嵌入式操作系统5
1.3.1 嵌入式操作系统简介5
1.3.2 嵌入式实时操作系统的特点6
1.3.3 常用的嵌入式操作系统6
1.4 ARM Cortex系列嵌入式处理器10
1.5 ARM Cortex-M0/M0+处理器12
1.5.1 Cortex-M0/M0+处理器简介12
1.5.2 Cortex-M0/M0+处理器的特性13
1.6 NXP公司Cortex-M0/M0+系列处理器13
1.6.1 LPC800系列14
1.6.2 LPC1100/L系列16
1.6.3 LPC1200系列19
1.7 ARM Cortex-M处理器开发工具21
1.7.1 集成开发环境21
1.7.2 Proteus Design Suite仿真平台27
1.7.3 嵌入式操作系统支持29
习题30
第2章 ARM Cortex-M0内核体系结构31
2.1 处理器结构与特性31
2.2 总线架构33
2.3 编程模型34
2.3.1 操作模式和状态34
2.3.2 堆栈34
2.3.3 内核寄存器35
2.3.4 内部函数38
2.4 存储器模型39
2.4.1 存储区、类型和属性39
2.4.2 存储器访问秩序40
2.4.3 存储器访问的行为41
2.4.4 存储器的字节存储顺序41
2.4.5 数据类型42
2.5 异常模型42
2.5.1 异常状态42
2.5.2 异常类型42
2.5.3 向量表44
2.5.4 异常优先级44
2.5.5 异常的进入和返回44
2.5.6 中断输入及挂起行为46
2.5.7 故障处理48
2.5.8 异常处理程序48
2.6 电源管理50
2.6.1 进入睡眠模式50
2.6.2 从睡眠模式唤醒50
2.6.3 电源管理编程提示51
2.7 核内外设51
2.7.1 系统控制模块51
2.7.2 嵌套向量中断控制器56
2.7.3 系统节拍定时器59
习题62
第3章 LPC1100系列处理器基础63
3.1 LPC1100系列处理器基本结构63
3.2 存储器管理64
3.2.1 LPC1100系列处理器存储器映射64
3.2.2 异常向量表及其重映射65
3.2.3 Boot ROM66
3.2.4 Flash存储器访问67
3.3 系统控制模块67
3.3.1 系统控制模块概述67
3.3.2 引脚描述68
3.3.3 系统控制模块寄存器68
3.3.4 复位84
3.3.5 掉电检测84
3.3.6 代码安全与调试——代码安全保护寄存器84
3.4 时钟系统86
3.4.1 时钟系统结构86
3.4.2 振荡器86
3.4.3 多路选择输出外部时钟87
3.4.4 PLL工作原理与使用88
3.5 引脚描述与I/O口配置92
3.5.1 引脚描述92
3.5.2 I/O口的引脚模式97
3.5.3 I/O口的配置97
3.5.4 I/O配置示例102
3.6 GPIO口的结构及功能104
3.6.1 GPIO口的结构特点104
3.6.2 GPIO口的配置104
3.6.3 GPIO口中断107
3.6.4 GPIO应用示例109
3.7 中断源及NVIC相关寄存器110
3.7.1 中断源110
3.7.2 NVIC相关寄存器113
3.8 串行线调试115
3.8.1 串行线调试概述115
3.8.2 串行线调试接口116
3.8.3 SWD调试接口设置116
3.9 LPC1100最小系统和开发板117
3.9.1 LPC1100最小系统117
3.9.2 LPC1114开发板122
3.9.3 ISP程序下载124
习题126
第4章 LPC1100系列处理器外设127
4.1 定时器/计数器127
4.1.1 定时器/计数器概述127
4.1.2 定时器/计数器寄存器129
4.1.3 定时器中断设置137
4.1.4 定时器操作示例139
4.2 通用异步收发器142
4.2.1 UART概述142
4.2.2 UART接口引脚与配置144
4.2.3 UART寄存器145
4.2.4 RS-485/EIA-485模式的操作164
4.2.5 UART中断165
4.2.6 UART接口电路设计168
4.2.7 UART程序设计示例170
4.3 I2C总线接口176
4.3.1 I2C总线接口描述176
4.3.2 I2C总线配置178
4.3.3 I2C寄存器与功能描述178
4.3.4 I2C接口中断186
4.3.5 I2C操作模式详解187
4.3.6 I2C状态服务程序199
4.3.7 I2C总线接口应用示例199
4.3.8 I2C程序设计201
4.4 SSP同步串行端口控制器211
4.4.1 引脚描述212
4.4.2 基本配置213
4.4.3 寄存器描述213
4.4.4 SPI帧格式217
4.4.5 SSI帧格式220
4.4.6 Microwire帧格式222
4.4.7 SSP接口中断设置223
4.4.8 SPI接口应用示例225
4.5 A-D转换器230
4.5.1 A-D转换器概述230
4.5.2 ADC引脚描述和配置230
4.5.3 ADC寄存器231
4.5.4 基本操作234
4.5.5 ADC中断设置235
4.5.6 ADC操作与示例236
4.6 看门狗定时器239
4.6.1 看门狗定时器概述239
4.6.2 时钟和功率控制240
4.6.3 看门狗定时器结构240
4.6.4 看门狗定时器的配置241
4.6.5 看门狗定时器中断243
4.6.6 看门狗定时器应用示例243
4.7 电源管理单元246
4.7.1 功率控制246
4.7.2 功率控制相关寄存器246
4.7.3 电源管理单元及其相关寄存器247
4.7.4 节电工作模式的配置248
4.7.5 三种节电模式的比较251
4.7.6 功率控制注意事项251
4.7.7 CMSIS内在函数252
习题252
第5章 基于CMSIS接口标准的软件设计253
5.1 CMSIS标准简介253
5.2 CMSIS代码规范255
5.3 CMSIS文件结构258
5.4 CMSIS例子程序263
5.5 Startup_LPC11xx.s启动代码266
5.5.1 启动代码的作用266
5.5.2 Startup_LPC11xx.s启动代码分析266
习题270
附录271
附录A Cortex-M0/M0+指令集271
A.1 指令
前 言
第1章 嵌入式系统概述1
1.1 嵌入式系统1
1.1.1 嵌入式系统的定义1
1.1.2 嵌入式系统的历史1
1.1.3 嵌入式系统的发展趋势2
1.2 嵌入式处理器3
1.3 嵌入式操作系统5
1.3.1 嵌入式操作系统简介5
1.3.2 嵌入式实时操作系统的特点6
1.3.3 常用的嵌入式操作系统6
1.4 ARM Cortex系列嵌入式处理器10
1.5 ARM Cortex-M0/M0+处理器12
1.5.1 Cortex-M0/M0+处理器简介12
1.5.2 Cortex-M0/M0+处理器的特性13
1.6 NXP公司Cortex-M0/M0+系列处理器13
1.6.1 LPC800系列14
1.6.2 LPC1100/L系列16
1.6.3 LPC1200系列19
1.7 ARM Cortex-M处理器开发工具21
1.7.1 集成开发环境21
1.7.2 Proteus Design Suite仿真平台27
1.7.3 嵌入式操作系统支持29
习题30
第2章 ARM Cortex-M0内核体系结构31
2.1 处理器结构与特性31
2.2 总线架构33
2.3 编程模型34
2.3.1 操作模式和状态34
2.3.2 堆栈34
2.3.3 内核寄存器35
2.3.4 内部函数38
2.4 存储器模型39
2.4.1 存储区、类型和属性39
2.4.2 存储器访问秩序40
2.4.3 存储器访问的行为41
2.4.4 存储器的字节存储顺序41
2.4.5 数据类型42
2.5 异常模型42
2.5.1 异常状态42
2.5.2 异常类型42
2.5.3 向量表44
2.5.4 异常优先级44
2.5.5 异常的进入和返回44
2.5.6 中断输入及挂起行为46
2.5.7 故障处理48
2.5.8 异常处理程序48
2.6 电源管理50
2.6.1 进入睡眠模式50
2.6.2 从睡眠模式唤醒50
2.6.3 电源管理编程提示51
2.7 核内外设51
2.7.1 系统控制模块51
2.7.2 嵌套向量中断控制器56
2.7.3 系统节拍定时器59
习题62
第3章 LPC1100系列处理器基础63
3.1 LPC1100系列处理器基本结构63
3.2 存储器管理64
3.2.1 LPC1100系列处理器存储器映射64
3.2.2 异常向量表及其重映射65
3.2.3 Boot ROM66
3.2.4 Flash存储器访问67
3.3 系统控制模块67
3.3.1 系统控制模块概述67
3.3.2 引脚描述68
3.3.3 系统控制模块寄存器68
3.3.4 复位84
3.3.5 掉电检测84
3.3.6 代码安全与调试——代码安全保护寄存器84
3.4 时钟系统86
3.4.1 时钟系统结构86
3.4.2 振荡器86
3.4.3 多路选择输出外部时钟87
3.4.4 PLL工作原理与使用88
3.5 引脚描述与I/O口配置92
3.5.1 引脚描述92
3.5.2 I/O口的引脚模式97
3.5.3 I/O口的配置97
3.5.4 I/O配置示例102
3.6 GPIO口的结构及功能104
3.6.1 GPIO口的结构特点104
3.6.2 GPIO口的配置104
3.6.3 GPIO口中断107
3.6.4 GPIO应用示例109
3.7 中断源及NVIC相关寄存器110
3.7.1 中断源110
3.7.2 NVIC相关寄存器113
3.8 串行线调试115
3.8.1 串行线调试概述115
3.8.2 串行线调试接口116
3.8.3 SWD调试接口设置116
3.9 LPC1100最小系统和开发板117
3.9.1 LPC1100最小系统117
3.9.2 LPC1114开发板122
3.9.3 ISP程序下载124
习题126
第4章 LPC1100系列处理器外设127
4.1 定时器/计数器127
4.1.1 定时器/计数器概述127
4.1.2 定时器/计数器寄存器129
4.1.3 定时器中断设置137
4.1.4 定时器操作示例139
4.2 通用异步收发器142
4.2.1 UART概述142
4.2.2 UART接口引脚与配置144
4.2.3 UART寄存器145
4.2.4 RS-485/EIA-485模式的操作164
4.2.5 UART中断165
4.2.6 UART接口电路设计168
4.2.7 UART程序设计示例170
4.3 I2C总线接口176
4.3.1 I2C总线接口描述176
4.3.2 I2C总线配置178
4.3.3 I2C寄存器与功能描述178
4.3.4 I2C接口中断186
4.3.5 I2C操作模式详解187
4.3.6 I2C状态服务程序199
4.3.7 I2C总线接口应用示例199
4.3.8 I2C程序设计201
4.4 SSP同步串行端口控制器211
4.4.1 引脚描述212
4.4.2 基本配置213
4.4.3 寄存器描述213
4.4.4 SPI帧格式217
4.4.5 SSI帧格式220
4.4.6 Microwire帧格式222
4.4.7 SSP接口中断设置223
4.4.8 SPI接口应用示例225
4.5 A-D转换器230
4.5.1 A-D转换器概述230
4.5.2 ADC引脚描述和配置230
4.5.3 ADC寄存器231
4.5.4 基本操作234
4.5.5 ADC中断设置235
4.5.6 ADC操作与示例236
4.6 看门狗定时器239
4.6.1 看门狗定时器概述239
4.6.2 时钟和功率控制240
4.6.3 看门狗定时器结构240
4.6.4 看门狗定时器的配置241
4.6.5 看门狗定时器中断243
4.6.6 看门狗定时器应用示例243
4.7 电源管理单元246
4.7.1 功率控制246
4.7.2 功率控制相关寄存器246
4.7.3 电源管理单元及其相关寄存器247
4.7.4 节电工作模式的配置248
4.7.5 三种节电模式的比较251
4.7.6 功率控制注意事项251
4.7.7 CMSIS内在函数252
习题252
第5章 基于CMSIS接口标准的软件设计253
5.1 CMSIS标准简介253
5.2 CMSIS代码规范255
5.3 CMSIS文件结构258
5.4 CMSIS例子程序263
5.5 Startup_LPC11xx.s启动代码266
5.5.1 启动代码的作用266
5.5.2 Startup_LPC11xx.s启动代码分析266
习题270
附录271
附录A Cortex-M0/M0+指令集271
A.1 指令
嵌入式系统设计
光盘服务联系方式: 020-38250260 客服QQ:4006604884