第1章 嵌入式系统概论 1
1.1 嵌入式系统简介 1
1.1.1 嵌入式系统的历史 1
1.1.2 嵌入式系统的定义 2
1.1.3 嵌入式系统的特点 4
1.2 嵌入式系统的分类 5
1.2.1 嵌入式系统的实时性分类 5
1.2.2 嵌入式系统的应用领域分类 6
1.3 嵌入式系统的发展现状和发展趋势 9
1.3.1 嵌入式系统的发展现状 9
1.3.2 嵌入式系统的发展趋势 10
习题1 12
第2章 嵌入式系统的基础知识 13
2.1 嵌入式系统的基本结构 13
2.1.1 硬件层 14
2.1.2 中间层 14
2.1.3 软件层 15
2.1.4 应用层 16
2.2 嵌入式系统硬件基础 17
2.2.1 嵌入式微处理器基本知识 17
2.2.2 存储器系统 26
2.2.3 输入/输出接口 30
2.3 嵌入式系统软件基础 31
2.3.1 嵌入式软件分类及特点 31
2.3.2 嵌入式软件体系结构 32
2.4 嵌入式系统中断与系统启动 38
2.4.1 中断基础知识 38
2.4.2 Boot Loader基础 47
习题2 51
第3章 嵌入式系统开发基础 52
3.1 嵌入式系统硬件平台 52
3.1.1 嵌入式处理器分类 53
3.1.2 常见的嵌入式处理器 55
3.2 嵌入式软件平台 62
3.2.1 常用嵌入式操作系统 62
3.2.2 嵌入式文件系统 66
3.2.3 嵌入式图形用户接口 69
3.3 嵌入式系统开发技术 71
3.3.1 嵌入式系统的设计流程 71
3.3.2 嵌入式系统的硬件/软件协同设计技术 72
3.3.3 嵌入式系统的可重构设计技术 74
3.3.4 嵌入式中间件技术 76
3.4 嵌入式系统开发与调试基础 79
3.4.1 嵌入式代码生成流程 79
3.4.2 嵌入式软件代码结构分析 81
3.4.3 嵌入式软件调试方法 85
习题3 92
第4章 ARM Cortex-M3处理器体系结构 93
4.1 ARM处理器的发展历程 93
4.2 Cortex-M3处理器体系结构 97
4.2.1 Cortex-M3体系结构简介 97
4.2.2 Cortex-M3异常管理 103
4.2.3 Cortex-M3复位异常 112
习题4 119
第5章 嵌入式系统常用外设驱动编程实例 120
5.1 STM32F103VET6简介 120
5.1.1 STM32F103VET6概述 120
5.1.2 引脚概述 121
5.2 GPIO应用实例——LED模块设计 122
5.2.1 GPIO简介 122
5.2.2 GPIO寄存器描述 124
5.2.3 基于GPIO的LED灯控制 127
5.3 STM32外部中断及键盘应用实例 133
5.3.1 STM32外部中断简介 133
5.3.2 嵌入式键盘工作原理 139
5.3.3 基于中断的键盘应用实例 141
5.4 STM32 UART串口应用实例 147
5.4.1 异步串行通信概述 147
5.4.2 STM32 UART串口简介 149
5.4.3 STM32 UART应用实例 152
5.5 DMA及A/D转换器应用实例 158
5.5.1 DMA工作原理 158
5.5.2 STM32的DMA控制器 159
5.5.3 A/D转换器原理 162
5.5.4 STM32 A/D转换器介绍 165
5.5.5 STM32 A/D转换器应用实例 170
5.6 LCD应用实例 174
5.6.1 LCD工作原理 174
5.6.2 TFT型LCD显示屏及接口简介 177
5.6.3 TFT型LCD应用实例 181
5.7 SPI总线及触摸屏应用实例 193
5.7.1 触摸屏原理及有关技术 193
5.7.2 触摸屏驱动芯片ADS7843简介 196
5.7.3 SPI总线工作原理 198
5.7.4 STM32 SPI简介 200
5.7.5 触摸屏应用实例 204
习题5 209
第6章 嵌入式操作系统基础知识 210
6.1 操作系统基础知识 210
6.1.1 操作系统的基本概念 210
6.1.2 操作系统的主要功能 211
6.1.3 操作系统的分类 213
6.2 嵌入式操作系统 215
6.2.1 嵌入式操作系统的特点 215
6.2.2 实时操作系统的基本概念 217
6.3 任务间互斥、同步与通信 228
6.3.1 任务的互斥 228
6.3.2 任务的同步 230
6.3.3 任务间的通信 232
习题6 234
第7章 嵌入式实时操作系统μC/OS-Ⅱ 236
7.1 C/OS-Ⅱ内核结构 236
7.1.1 μC/OS-Ⅱ组成及功能 237
7.1.2 μC/OS-Ⅱ内核结构概述 239
7.2 μ/OS-Ⅱ任务管理 257
7.2.1 μC/OS-Ⅱ系统任务管理 257
7.2.2 μC/OS-Ⅱ用户任务管理 260
7.3 μC/OS-Ⅱ时间管理 265
7.3.1 μC/OS-Ⅱ时钟节拍管理 265
7.3.2 μC/OS-Ⅱ软件定时器管理 268
7.4 μC/OS-Ⅱ任务同步 273
7.4.1 μC/OS-Ⅱ信号量 273
7.4.2 μC/OS-Ⅱ事件标志组 277
7.5 μC/OS-Ⅱ任务通信 284
7.5.1 μC/OS-Ⅱ消息邮箱 284
7.5.2 μC/OS-Ⅱ消息队列 288
7.6 μC/OS-Ⅱ任务互斥 294
7.6.1 μC/OS-Ⅱ互斥原理 294
7.6.2 μC/OS-Ⅱ互斥信号量 295
习题7 298
第8章 μC/OS-Ⅱ操作系统的应用及移植 299
8.1 μC/OS-Ⅱ应用基础 299
8.1.1 任务划分 299
8.1.2 μC/OS-Ⅱ任务堆栈的设置 300
8.1.3 任务的执行分类及优先级设置 302
8.2 μC/OS-Ⅱ应用编程举例 305
8.2.1 μC/OS-Ⅱ同步信号量应用实例 305
8.2.2 μC/OS-Ⅱ消息邮箱通信应用实例 308
8.2.3 μC/OS-Ⅱ互斥信号量应用实例 311
8.2.4 μC/OS-Ⅱ事件标志组应用实例 314
8.2.5 μC/OS-Ⅱ定时器应用实例 318
8.3 操作系统移植 322
8.3.1 μC/OS-Ⅱ移植基础知识 322
8.3.2 μC/OS-Ⅱ在STM32F103上的移植实现 330
习题8 339
第9章 智能家居监测控制系统实例 340
9.1 需求分析 340
9.2 总体设计 341
9.3 系统硬件设计 342
9.3.1 家居控制器最小系统设计 342
9.3.2 电源电路设计 343
9.3.3 通信电路设计 344
9.3.4 显示模块电路 344
9.3.5 数据采集模块电路 345
9.4 系统软件设计 347
9.4.1 主程序设计 349
9.4.2 报警任务 351
9.4.3 GSM短信查询控制任务 353
9.4.4 信息采集任务 355
9.4.5 其他函数说明 358
9.5 系统验证 359
习题9 361
参考文献 362