第1章 嵌入式系统基础
1.1 嵌入式系统概念1
1.1.1 嵌入式系统定义1
1.1.2 嵌入式系统组成2
1.1.3 嵌入式系统特点3
1.1.4 嵌入式系统应用5
1.1.5 实时系统6
1.2 嵌入式处理器7
1.2.1 嵌入式处理器分类7
1.2.2 微控制器8
1.2.3 嵌入式微处理器9
1.2.4 DSP处理器9
1.2.5 片上系统10
1.2.6 典型的嵌入式处理器11
1.3 嵌入式操作系统12
1.3.1 操作系统概念和分类12
1.3.2 实时操作系统16
1.3.3 常见的嵌入式操作系统19
1.4 实时操作系统的内核23
1.4.1 任务管理23
1.4.2 任务间的通信和同步30
1.4.3 存储器管理32
1.4.4 定时器和中断管理33
习题34
第2章 嵌入式系统开发过程
2.1 嵌入式软件开发的特点35
2.2 嵌入式软件的开发流程36
2.3 嵌入式系统调试42
2.4 板级支持包46
习题48
第3章 CortexM体系结构
3.1 ARM体系结构概述49
3.1.1 ARM体系结构的特点49
3.1.2 流水线52
3.1.3 ARM处理器核54
3.1.4 结构框图64
3.1.5 典型的连接方式65
3.1.6 ARMJTAG调试接口67
3.2 编程模型68
3.2.1 Thumb2指令集体系结构(ISA)68
3.2.2 寄存器69
3.2.3 工作模式和特权级别72
3.2.4 CortexM3堆栈73
3.2.5 数据类型74
3.2.6 存储器和存储器映射I/O74
3.3 ARM基本寻址方式77
3.4 Thumb2指令集说明82
3.4.1 条件执行82
3.4.2 指令分类说明83
3.4.3 Thumb2指令集的特点103
3.4.4 ARM汇编语言程序设计108
3.5 存储器映射111
3.5.1 存储系统简介111
3.5.2 存储器映射空间111
3.5.3 位绑定操作114
3.6 中断和异常117
3.6.1 异常类型118
3.6.2 优先级的定义119
3.6.3 向量表121
3.6.4 中断输入及挂起行为122
3.6.5 NVIC与中断控制124
3.6.6 中断/异常的响应序列126
3.6.7 尾链中断127
3.6.8 迟到异常处理128
3.6.9 异常返回值128
3.6.10 中断延迟130
3.7 ARMCortexM的优势130
习题132
第4章 ARMCortexM微控制器
4.1 LM3S微控制器134
4.1.1 LM3S微控制器分类134
4.1.2 LM3S微控制器特性和结构135
4.1.3 系统控制和时钟144
4.1.4 Stellaris外设驱动库150
4.2 STM32微控制器155
4.2.1 STM32微控制器分类155
4.2.2 STM32F103微控制器特性和结构156
4.2.3 STM32复位与时钟控制163
4.2.4 STM32启动模式168
4.2.5 STM32固件库169
4.3 LPC1000系列微控制器174
4.3.1 LPC1000系列微控制器分类174
4.3.2 LPC1700微控制器特性和结构175
4.3.3 LPC1700系统控制179
4.3.4 LPC1700时钟和功耗控制181
4.4 SAM3U微控制器187
4.4.1 SAM3U微控制器系列187
4.4.2 SAM3U微控制器特性和结构188
4.4.3 SAM3U复位与时钟控制191
习题198
第5章 片上资源的编程技术
5.1 LM3S微控制器片上资源199
5.1.1 LM3S通用输入/输出端口GPIO199
5.1.2 LM3S按键中断208
5.1.3 LM3S通用定时器210
5.1.4 LM3S串行口UART221
5.1.5 LM3S模/数转换器(ADC)226
5.2 STM32微控制器片上资源228
5.2.1 STM32通用和复用功能I/O(GPIO和AFIO)228
5.2.2 STM32按键中断234
5.2.3 STM32通用定时器240
5.3 LPC1700微控制器片上资源267
5.3.1 LPC1700通用输入输出口GPIO267
5.3.2 LPC1700按键中断276
5.3.3 LPC1700通用定时器284
5.4 SAM3U微控制器片上资源298
5.4.1 SAM3U通用输入输出口GPIO298
5.4.2 SAM3U按键中断304
5.4.3 SAM3U通用定时器307
习题321
第6章 嵌入式系统接口及编程
6.1 字符型LCD显示模块322
6.1.1 LCD硬件接口设计322
6.1.2 LCD显示编程323
6.2 行列式键盘326
6.2.1 键盘硬件接口设计326
6.2.2 键盘扫描程序设计327
6.3 电机控制332
6.3.1 步进电机控制模块332
6.3.2 直流电机控制模块339
6.4 串行总线接口SPI343
6.4.1 串行总线接口SPI简介343
6.4.2 Stellaris的同步串行接口(SSI)343
6.4.3 与串行总线接口SPI有关的函数346
6.4.4 ZigBee通信实例347
6.5 I2C接口360
6.5.1 I2C总线简介360
6.5.2 I2C总线的通信规约360
6.5.3 Stellaris的I2C接口362
6.5.4 与I2C有关的库函数364
6.5.5 I2C接口应用实例365
习题370
第7章 μC/OSII移植
7.1 移植代码说明371
7.1.1 includes.h372
7.1.2 OS_CPU.H文件372
7.1.3 OS_CPU_C.C文件374
7.1.4 OS_CPU_A.ASM375
7.2 异常/中断381
7.3 启动文件和目标板配置文件381
7.3.1 startup_ewarm.c文件382
7.3.2 Target.H文件384
7.3.3 Target.C文件387
7.4 用户文件389
第8章 UML设计方法
8.1 常见的模型元素391
8.1.1 结构要素391
8.1.2 行为要素393
8.1.3 分组要素393
8.1.4 注释要素394
8.1.5 关系394
8.2 图395
8.3 视图400
参考文献402