第1章 嵌入式系统概论 1
1.1 嵌入式系统简介 1
1.1.1 嵌入式系统的历史 1
1.1.2 嵌入式系统的定义 2
1.1.3 嵌入式系统的特点 4
1.2 嵌入式系统的分类 5
1.2.1 嵌入式系统的实时性分类 6
1.2.2 嵌入式系统的应用领域分类 6
1.3 嵌入式系统的发展现状和发展趋势 9
1.3.1 嵌入式系统的发展现状 9
1.3.2 嵌入式系统的发展趋势 10
习题1 11
第2章 嵌入式系统的基础知识 12
2.1 嵌入式系统的基本结构 12
2.1.1 硬件层 12
2.1.2 中间层 13
2.1.3 系统软件层 14
2.1.4 应用层 15
2.2 嵌入式系统硬件基础 16
2.2.1 嵌入式微处理器 16
2.2.2 嵌入式存储器系统 24
2.2.3 嵌入式输入输出接口 28
2.3 嵌入式软件基础 29
2.3.1 嵌入式软件分类及特点 29
2.3.2 嵌入式软件体系结构 30
2.4 嵌入式系统中断管理与系统启动 36
2.4.1 中断基础知识 36
2.4.2 Boot Loader基础 45
习题2 48
第3章 嵌入式系统开发基础 49
3.1 嵌入式系统硬件平台 49
3.1.1 嵌入式处理器分类 50
3.1.2 常见的嵌入式处理器 52
3.2 嵌入式软件平台 58
3.2.1 常用嵌入式操作系统 58
3.2.2 嵌入式文件系统 62
3.2.3 嵌入式图形用户接口 65
3.3 嵌入式系统开发技术 67
3.3.1 嵌入式系统的设计流程 67
3.3.2 嵌入式系统的硬件/软件协同设计技术 67
3.3.3 嵌入式系统的可重构设计技术 69
3.3.4 嵌入式中间件技术 71
3.4 嵌入式系统开发与调试基础 74
3.4.1 嵌入式代码生成流程 74
3.4.2 嵌入式软件代码结构分析 76
3.4.3 嵌入式软件调试方法 80
习题3 87
第4章 ARM Cortex-M3处理器体系结构与开发环境 88
4.1 ARM处理器的发展历程 88
4.2 Cortex-M3处理器体系结构 91
4.2.1 Cortex-M3体系结构简介 91
4.2.2 Cortex-M3异常管理 97
4.2.3 Cortex-M3复位异常 107
4.2.4 Cortex-M3系统启动举例 111
4.3 Cortex-M3嵌入式软件开发环境ReaLView MDK 118
4.3.1 RealView简介 118
4.3.2 μVision使用入门 119
4.3.3 测试示例程序 124
4.3.4 指令模拟器 128
习题4 129
第5章 嵌入式系统常用外设驱动编程实例 130
5.1 LPC1768简介 130
5.1.1 LPC1768概述 130
5.1.2 引脚概述 132
5.2 GPIO与键盘实例 135
5.2.1 LPC1768的GPIO概述 136
5.2.2 基于GPIO的矩阵键盘设计 138
5.2.3 键盘驱动程序设计 141
5.3 UART异步串口模块实例 147
5.3.1 异步串行通信概述 147
5.3.2 LPC1768 UART串口简介及接口电路设计 149
5.3.3 LPC1768 UART驱动实例 155
5.4 A/D转换器应用实例 158
5.4.1 A/D转换器原理 158
5.4.2 LPC1768 A/D转换器介绍 162
5.4.3 LPC1768 A/D程序设计 164
5.5 触摸屏模块设计实例 165
5.5.1 触摸屏原理及有关技术 165
5.5.2 触摸屏驱动芯片ADS7843简介及接口电路设计 169
5.5.3 触摸屏驱动程序设计 171
5.6 LCD模块设计 176
5.6.1 LCD显示原理 176
5.6.2 TFT型LCD显示屏简介及接口电路设计 180
5.6.3 TFT型LCD液晶显示驱动程序设计 185
5.7 PWM控制实例 192
5.7.1 PWM控制的基本原理 192
5.7.2 LPC1768 PWM概述 193
5.7.3 LPC1768 PWM的驱动程序设计 197
习题5 202
第6章 嵌入式操作系统基础知识 203
6.1 操作系统基础知识 203
6.1.1 操作系统的基本概念 203
6.1.2 操作系统主要功能 204
6.1.3 操作系统的分类 206
6.2 嵌入式操作系统 208
6.2.1 嵌入式操作系统特点 209
6.2.2 实时操作系统基本概念 210
6.3 任务间互斥、同步与通信 221
6.3.1 任务的互斥 222
6.3.2 任务的同步 224
6.3.3 任务间的通信 225
习题6 228
第7章 嵌入式实时操作系统μC/OS-Ⅱ 230
7.1 μC/OS-Ⅱ内核结构 230
7.1.1 μC/OS-Ⅱ组成及功能 231
7.1.2 μC/OS-Ⅱ内核结构 233
7.2 μC/OS-Ⅱ任务管理 251
7.2.1 μC/OS-Ⅱ系统任务管理 251
7.2.2 μC/OS-Ⅱ用户任务管理 254
7.3 μC/OS-Ⅱ时间管理 264
7.3.1 μC/OS-Ⅱ时钟节拍管理 264
7.3.2 μC/OS-Ⅱ定时器管理 268
7.4 μC/OS-Ⅱ任务同步 275
7.4.1 μC/OS-Ⅱ信号量 275
7.4.2 μC/OS-Ⅱ事件标志组 281
7.5 μC/OS-Ⅱ任务通信 291
7.5.1 μC/OS-Ⅱ消息邮箱 291
7.5.2 μC/OS-Ⅱ消息队列 298
7.6 μC/OS-Ⅱ任务互斥 309
7.6.1 μC/OS-Ⅱ互斥原理 309
7.6.2 μC/OS-Ⅱ互斥信号量 310
习题7 316
第8章 μC/OS-Ⅱ操作系统应用及移植 317
8.1 μC/OS-Ⅱ应用基础 317
8.1.1 任务划分 317
8.1.2 μC/OS-Ⅱ任务堆栈设置 318
8.1.3 任务的执行分类及优先级设置 320
8.2 μC/OS-Ⅱ应用编程举例 323
8.2.1 μC/OS-Ⅱ同步应用实例 323
8.2.2 μC/OS-Ⅱ通信应用实例 325
8.2.3 μC/OS-Ⅱ互斥应用实例 328
8.2.4 μC/OS-Ⅱ事件标志组举例 330
8.3 操作系统移植 334
8.3.1 μC/OS-Ⅱ移植基础知识 335
8.3.2 μC/OS-Ⅱ在LPC1768上的移植实现 343
习题8 352
参考文献 353