目  录

第1章  嵌入式系统概论	1
1.1  嵌入式系统概念	1
1.2  嵌入式系统组成	4
1.2.1  嵌入式系统结构	4
1.2.2  嵌入式微处理器	5
1.2.3  嵌入式操作系统	6
1.3  嵌入式系统设计过程	7
1.4  嵌入式系统发展	9
1.5  本书的内容安排	11
1.6  习题	11
第2章  微处理器体系架构	12
2.1  嵌入式微处理器体系结构	12
2.1.1  冯·诺依曼结构与哈佛结构	12
2.1.2  复杂指令集和精简指令集计算机	14
2.1.3  嵌入式微处理器类型 	15
2.2  ARM微处理器体系架构	20
2.2.1  可编程模式	22
2.2.2  特殊寄存器	24
2.3  中断机制	26
2.4  嵌入式汇编语言	31
2.4.1  汇编程序的结构	31
2.4.2  指令格式与寻址方式	32
2.4.3  常见指令	34
2.4.4  汇编程序的设计	37
2.5  流水线技术	41
2.5.1  流水线分类	41
2.5.2  Cortex-M4 的三级流水线	42
2.5.3  影响流水线性能的因素	43
2.6  本章小结	44
2.7  习题	44
第3章  嵌入式总线技术	46
3.1  系统总线概述	46
3.2  总线结构与协议	48
3.2.1  CPU总线的结构	48
3.2.2  总线组织及演进	50
3.2.3  典型总线及协议	51
3.2.4  STM32F4系列芯片对总线的支持	65
3.3  DMA	65
3.3.1  定义和作用	66
3.3.2  STM32F4系列芯片DMA控制器结构和DMA特点	66
3.3.3  DMA的设置	69
3.3.4  DMA传输的状态	69
3.3.5  DMA请求的仲裁	71
3.3.6  DMA延迟性能	71
3.4  ARM CPU的总线结构	72
3.4.1  ARM CPU的总线发展 	72
3.4.2  ARM总线结构	73
3.4.3  多层总线矩阵结构	80
3.4.4  矩阵总线访问优先权	80
3.5  总线的性能分析	81
3.6  本章小结	81
3.7  习题	81
第4章  存储器系统	83
4.1  存储器系统概述	83
4.2  嵌入式系统存储器的分类和存储器性能分析	83
4.2.1  以存储器的用途分类	83
4.2.2  以信息存取方式分类	85
4.2.3  存储器的主要技术指标	90
4.3  ARM存储器管理	90
4.3.1  存储映射	91
4.3.2  存储格式	93
4.3.3  工作原理	94
4.3.4  启动配置	95
4.3.5  嵌入式闪存支持	95
4.3.6  弹性静态存储器控制器	97
4.3.7  弹性存储器控制器	99
4.4  新型存储器	100
4.4.1  MRAM	101
4.4.2  PRAM	101
4.4.3  RRAM	101
4.5  存储保护和校验技术	102
4.5.1  存储保护	102
4.5.2  校验技术	104
4.6  本章小结	105
4.7  习题	105
第5章  嵌入式输入/输出设备的接口	107
5.1  I/O接口	107
5.1.1  接口结构	107
5.1.2  I/O接口组成	107
5.1.3  I/O接口的数据传输	108
5.2  GPIO	109
5.2.1  GPIO概述	109
5.2.2  GPIO功能特点	110
5.2.3  GPIO输入/输出模式	110
5.2.4  GPIO引脚复用	111
5.2.5  GPIO配置	111
5.3  外部中断/事件	114
5.3.1  外部中断/事件概述	114
5.3.2  EXTI结构和外部中断/事件响应过程	115
5.3.3  外部中断/事件的配置	116
5.4  通信接口	117
5.4.1  通信接口概述	117
5.4.2  串行通信	119
5.4.3  SPI	123
5.4.4  I2C	127
5.5  人机交互	131
5.5.1  LCD概述	131
5.5.2  LCD显示的控制方法	131
5.5.3  指令介绍	134
5.6  ADC/DAC	137
5.6.1  ADC/DAC概述	137
5.6.2  ADC接口的内部结构	137
5.6.3  ADC功能	139
5.6.4  DAC接口的内部结构	144
5.6.5  DAC的功能	145
5.7  本章小结	147
5.8  习题	147
第6章  程序设计与分析	149
6.1  嵌入式程序设计	149
6.1.1  嵌入式程序设计方法	150
6.1.2  嵌入式程序模型	155
6.2  嵌入式C语言编程	161
6.2.1  嵌入式C语言编程方法	161
6.2.2  嵌入式C语言中的元素	162
6.3  编译及优化技术	167
6.3.1  编译的翻译过程	169
6.3.2  编译过程中的代码优化	174
6.4  程序性能分析与优化	177
6.4.1  程序执行时间性能分析方法	177
6.4.2  与机器无关的性能优化	180
6.4.3  与机器相关的性能优化	185
6.4.4  程序功耗分析与优化	188
6.4.5  程序尺寸分析与优化	190
6.5  本章小结	192
6.6  习题	192
第7章  嵌入式最小系统构建	195
7.1  嵌入式最小系统	195
7.2  STM32嵌入式微控制器	195
7.2.1  电源系统 	197
7.2.2  时钟系统 	199
7.2.3  复位系统 	199
7.2.4  外部接口 	201
7.3  基于 STM32 微控制器的最小系统构建 	204
7.3.1  最小系统的硬件设计	204
7.3.2  最小系统的编程环境搭建 	210
7.3.3  最小系统程序设计 	214
7.4  本章小结	219
7.5  习题	220
第8章  实时操作系统	221
8.1  概述	221
8.1.1  实时系统的概念	221
8.1.2  实时操作系统的基本特征	222
8.1.3  实时操作系统性能的衡量指标	223
8.1.4  实时操作系统的分类	224
8.1.5  POSIX标准	224
8.1.6  实时操作系统的典型应用	225
8.1.7  几种经典的实时操作系统	225
8.2  进程与任务	226
8.2.1  实时任务模型	226
8.2.2  实时任务分类	228
8.2.3  任务模型	228
8.2.4  实时任务管理	230
8.3  实时调度	231
8.3.1  内核与调度	231
8.3.2  实时调度策略	232
8.3.3  可调度性判定	232
8.4  常用的调度算法	234
8.4.1  单调速率调度算法	235
8.4.2  最早截止时间优先调度算法	236
8.4.3  最低松弛度优先调度算法	237
8.4.4  响应时间分析方法	239
8.5  进程间通信机制	240
8.5.1  进程的通信方式	240
8.5.2  进程同步与互斥	242
8.6  本章小结	243
8.7  习题	243
第9章  ?C/OS 操作系统	245
9.1  ?C/OS III 概述	245
9.2  任务管理	247
9.2.1  实时内核的执行	247
9.2.2  任务的状态及转换	248
9.2.3  任务管理的系统服务	250
9.2.4  任务的调度	256
9.3  中断管理	259
9.4  时间管理	262
9.5  内存管理	267
9.6  同步与消息传递	271
9.6.1  信号量	271
9.6.2  事件标志组	271
9.6.3  消息队列	272
9.7  ?C/OS的移植	273
9.8  本章小结	275
9.9  习题	275
第10章  嵌入式系统调试、测试与验证方法	276
10.1  嵌入式系统调试	276
 10.1.1  嵌入式系统调试技术	277
 10.1.2  调试手段	279
10.2  嵌入式软件测试	282
 10.2.1  嵌入式系统测试过程	284
 10.2.2  嵌入式软件开发标准及测试指标	284
 10.2.3  测试方法	288
10.3  嵌入式软件自动验证技术——模型检测	291
 10.3.1  模型检验过程	292
 10.3.2  状态爆炸问题	293
 10.3.3  模型检测工具	293
10.4  本章小结	294
10.5  习题	294
第11章  多核嵌入式微处理器	297
11.1  多核嵌入式系统	297
 11.1.1  多核处理器	297
 11.1.2  多核软件环境	298
11.2  ARM多核处理器	299
 11.2.1  ARM MPcore多处理器结构	299
 11.2.2  ARM 多核处理器中断管理	300
 11.2.3  big.LITTLE 技术	301
 11.2.4  多核处理器启动过程	302
11.3  多核处理器实时调度算法	304
11.4  多核处理器应用程序开发	306
 11.4.1  同构多核处理器程序开发	307
 11.4.2  异构多核处理器程序开发	309
11.5  本章小结	310
11.6  习题	310
附录A  部分代码	311
A.1  stm32fxx.h文件	311
A.2  引脚为输出的main.c文件	311
A.3  usart.h文件	312
A.4  usart.c文件	313
A.5  stm32f4xx_it.c文件	315
A.6  USART工程的main.c文件	315
A.7  循环缓冲区的main.c文件	316
参考文献	319