第1章 嵌入式系统与微控制器概述 1
1.1 嵌入式系统概述 1
1.1.1 嵌入式系统的发展 1
1.1.2 嵌入式系统的特点 3
1.1.3 嵌入式系统的组成 3
1.1.4 嵌入式系统的种类 5
1.1.5 嵌入式系统的调试方法 6
1.1.6 嵌入式系统的应用 12
1.2 嵌入式处理器 13
1.2.1 嵌入式处理器概述 13
1.2.2 嵌入式处理器的分类 13
1.2.3 MCU的发展和特点 18
1.3 习题 23
第2章 ARM Cortex-M处理器 24
2.1 ARM处理器概述 24
2.2 ARM处理器架构 24
2.2.1 ARM体系结构版本 25
2.2.2 ARM处理器 27
2.3 Cortex-M处理器内核及功能介绍 29
2.4 ARM Cortex-M4编程模型 34
2.4.1 处理器的工作模式和特权级别 34
2.4.2 ARM Cortex-M4寄存器 35
2.4.3 ARM Cortex-M4异常处理 38
2.5 习题 43
第3章 ARM指令系统 44
3.1 指令格式 44
3.2 条件码 46
3.3 ARM指令的寻址方式 47
3.4 ARM v7架构指令集——Thumb-2指令集 52
3.4.1 存储器访问指令 53
3.4.2 通用数据处理指令 57
3.4.3 乘法和除法指令 62
3.4.4 分支和分支控制指令 64
3.4.5 饱和运算指令SSAT和USAT 66
3.4.6 位段操作指令 67
3.4.7 杂项指令 69
3.5 ARM汇编程序设计 72
3.5.1 ARM汇编语言格式规范 72
3.5.2 ARM汇编语言编写格式示例 73
3.6 习题 73
第4章 系统控制 75
4.1 功能组件 75
4.1.1 复位控制 75
4.1.2 时钟控制 78
4.1.3 电源/功耗控制 82
4.1.4 嵌套向量中断控制器 83
4.1.5 DMA控制器 89
4.2 初始化配置 95
4.3 操作实例 98
4.3.1 时钟例程 98
4.3.2 中断例程 104
4.4 本章小结 107
4.5 习题 107
第5章 存储器 109
5.1 存储器分类 109
5.1.1 RAM存储器 109
5.1.2 ROM存储器 118
5.1.3 Flash存储器 121
5.1.4 铁电存储器FRAM 126
5.1.5 存储器控制器 128
5.1.6 存储器性能指标 132
5.2 微控制器存储器系统 133
5.2.1 存储器地址映射 134
5.2.2 位带操作 136
5.2.3 存储格式 137
5.3 操作示例 140
5.3.1 变量地址观察例程 140
5.3.2 Flash擦写例程 142
5.4 本章小结 146
5.5 习题 147
第6章 基本外设 148
6.1 通用输入/输出端口(GPIO) 148
6.1.1 GPIO简介 148
6.1.2 MSP432中的GPIO 151
6.1.3 初始化配置 152
6.1.4 操作实例 152
6.2 通用定时器/计数器 155
6.2.1 通用定时器简介 155
6.2.2 MSP432中的定时器 157
6.2.3 初始化配置 159
6.2.4 操作实例 160
6.3 脉冲宽度调制(PWM) 163
6.3.1 PWM简介 163
6.3.2 MSP432中的PWM 165
6.3.3 操作实例 166
6.4 看门狗定时器(WDT) 169
6.4.1 WDT简介 170
6.4.2 MSP432中的看门狗 170
6.4.3 操作实例 171
6.5 实时时钟(RTC) 175
6.5.1 RTC简介 175
6.5.2 MSP432中的RTC 175
6.5.3 操作实例 177
6.6 习题 181
第7章 模拟外设 182
7.1 模数转换器(ADC) 182
7.1.1 ADC简介 182
7.1.2 ADC性能指标 185
7.1.3 ADC类型 185
7.1.4 初始化配置 190
7.1.5 MSP432中的ADC 190
7.1.6 操作实例 192
7.2 比较器 196
7.2.1 比较器简介 196
7.2.2 初始化配置 199
7.2.3 操作实例 199
7.3 数模转换器(DAC) 201
7.3.1 DAC简介 201
7.3.2 DAC类型 202
7.3.3 DAC的技术指标 203
7.3.4 操作实例 203
7.4 习题 207
第8章 通信外设 209
8.1 数字通信系统概述 209
8.2 UART接口 210
8.2.1 UART简介 210
8.2.2 波特率 213
8.2.3 MSP432中的UART 213
8.2.4 初始化配置 215
8.2.5 操作实例 215
8.3 SPI接口 219
8.3.1 SPI简介 219
8.3.2 MSP432中的SPI 221
8.3.3 初始化配置 223
8.3.4 操作实例 224
8.4 12C接口 227
8.4.1 I2C简介 227
8.4.2 MSP432中的I2C 232
8.4.3 初始化配置 233
8.4.4 操作实例 234
8.5 CAN总线 238
8.6 USB接口 240
8.7 习题 244
第9章 嵌入式软件设计 245
9.1 嵌入式系统软件组成 245
9.1.1 嵌入式系统软件架构 245
9.1.2 初始化引导程序Bootloader 247
9.1.3 板级支持包BSP 247
9.1.4 设备驱动程序 249
9.1.5 库函数 250
9.2 嵌入式系统软件设计方法 250
9.2.1 前后台系统 250
9.2.2 中断(事件)驱动系统 251
9.2.3 巡回服务系统 252
9.2.4 基于定时器的巡回服务系统 253
9.2.5 带操作系统的嵌入式软件开发(以Linux为例) 254
9.3 嵌入式C语言基础 257
9.3.1 嵌入式C语言程序设计 257
9.3.2 编程风格 259
9.3.3 数据类型及声明 267
9.3.4 操作符与表达式 273
9.3.5 代码调试 276
9.4 本章小结 281
9.5 习题 281
第10章 嵌入式操作系统 282
10.1 常用的嵌入式操作系统 282
10.2 RTOS基础 284
10.2.1 RTOS的基本概念 284
10.2.2 使用RTOS的优势 286
10.2.3 RTOS的功能组成 287
10.3 FreeRTOS 292
10.3.1 FreeRTOS的体系结构 292
10.3.2 FreeRTOS的任务调度机制 293
10.3.3 FreeRTOS的任务管理 296
10.3.4 FreeRTOS任务通信机制 298
10.3.5 FreeRTOS任务同步机制 298
10.3.6 FreeRTOS移植到微控制器方法 299
10.3.7 Amazon FreeRTOS 299
10.4 FreeRTOS操作示例 299
10.4.1 FreeRTOS的任务创建及删除示例 299
10.4.2 FreeRTOS的任务通信示例 303
10.4.3 FreeRTOS的任务同步(二进制信号量)示例 309
10.4.4 基于FreeRTOS MSP32的闪灯示例 314
10.5 习题 318
第11章 嵌入式系统与物联网 319
11.1 物联网概述 319
11.1.1 技术及应用框架 320
11.1.2 相关技术 321
11.2 无线通信技术 322
11.2.1 NFC 323
11.2.2 ZigBee 323
11.2.3 BLE 324
11.2.4 Wi-Fi 325
11.2.5 LoRa 326
11.2.6 NB-IoT 327
11.2.7 无线通信技术比较 328
11.3 终端技术 329
11.3.1 Android系统 329
11.3.2 iOS系统 330
11.3.3 Web技术 331
11.4 服务器和云计算 332
11.4.1 独立服务器和云主机 332
11.4.2 云计算 333
11.5 开发平台和操作系统 335
11.5.1 IoT开发平台 335
11.5.2 IoT操作系统 336
11.6 MQTT概述 337
11.6.1 MQTT特点 337
11.6.2 MQTT协议原理 338
11.7 物联网应用示例 339
11.8 习题 343
第12章 低功耗与电磁兼容 344
12.1 低功耗设计方法 344
12.1.1 利用I/O引脚为外部器件供电 344
12.1.2 电源管理单元的设计 345
12.1.3 动态改变CPU的时钟频率 345
12.1.4 软件系统的低功耗设计 346
12.2 电源设计 348
12.2.1 电池的选择 349
12.2.2 超低静态电流LDO 352
12.2.3 直流/直流转换器 353
12.3 电磁兼容性 354
12.3.1 电磁干扰的形成 354
12.3.2 电磁兼容常用元器件 356
12.3.3 电磁兼容常用技巧 357
12.4 习题 360
参考文献 361