第1章 嵌入式系统概述 1
1.1 嵌入式系统简介 1
1.1.1 什么是嵌入式系统 1
1.1.2 嵌入式系统的特点 6
1.1.3 嵌入式系统的组成 7
1.1.4 嵌入式系统的分类 13
1.2 嵌入式系统的应用领域 17
1.3 嵌入式系统在机电控制方面的应用 19
1.4 嵌入式系统的现状和发展趋势 21
1.4.1 嵌入式系统的现状 21
1.4.2 未来嵌入式系统的发展趋势 22
练习题 24
第2章 嵌入式系统的基本知识 25
2.1 嵌入式系统硬件知识 25
2.1.1 嵌入式微处理器简介 25
2.1.2 嵌入式微处理器体系结构 26
2.1.3 嵌入式微处理器的分类 32
2.2 嵌入式系统软件知识 36
2.2.1 嵌入式软件概述 36
2.2.2 嵌入式软件体系结构 37
2.2.3 嵌入式操作系统的分类 39
2.2.4 嵌入式操作系统的几个重要概念 42
2.2.5 常见的实时嵌入式操作系统介绍 44
2.3 嵌入式系统中的选型原则和设计工具 48
2.3.1 嵌入式系统的选型原则 48
2.3.2 嵌入式系统的设计工具 51
2.3.3 嵌入式系统开发模式 53
2.3.4 嵌入式软件开发工具 55
练习题 61
第3章 ARM微处理器体系结构与指令集 62
3.1 ARM嵌入式微处理器概述 62
3.1.1 嵌入式微处理器简介 62
3.1.2 ARM微处理器概述 63
3.1.3 ARM架构版本与产品系列 64
3.2 ARM微处理器体系结构 67
3.2.1 ARM微处理器体系结构概述 67
3.2.2 流水线 73
3.2.3 ARM的寄存器组织 76
3.2.4 ARM处理器模式 81
3.2.5 异常 81
3.3 ARM处理器的指令系统 86
3.3.1 ARM指令系统概述 86
3.3.2 ARM指令的条件域 88
3.3.3 ARM指令的寻址方式 88
3.3.4 ARM指令集 90
3.3.5 Thumb指令集 98
3.4 ARM处理器编程简介 99
3.4.1 ARM汇编语言的文件格式 99
3.4.2 ARM汇编语言的语句格式 99
3.4.3 C语言与汇编语言的混合编程 101
3.5 ARM处理器初始化分析 107
3.5.1 嵌入式系统初始化流程 107
3.5.2 ARM嵌入式处理器的初始化分析 110
练习题 114
第4章 μC/OS-Ⅱ嵌入式实时操作系统内核分析 115
4.1 μC/OS-Ⅱ实时操作系统简介 115
4.2 μC/OS-Ⅱ的内核结构分析 116
4.2.1 多任务 116
4.2.2 任务调度 120
4.2.3 中断与时间管理 123
4.2.4 μC/OS-Ⅱ的初始化 125
4.3 μC/OS-Ⅱ的任务通信和同步 126
4.3.1 任务互斥和同步 126
4.3.2 任务间的通信 129
4.3.3 μC/OS-Ⅱ的任务通信机制 130
4.4 μC/OS-Ⅱ在S3C2410微处理器上的移植分析 134
4.4.1 移植μC/OS-Ⅱ的基本要求 134
4.4.2 设置与处理器和编译器相关的代码 136
4.4.3 用C语言编写6个操作系统相关的函数 137
4.4.4 用汇编语言编写4个与处理器相关的函数 140
4.4.5 移植测试 143
练习题 144
第5章 嵌入式系统硬件平台与接口设计 145
5.1 基于S3C2410A微处理器的硬件平台体系结构 145
5.1.1 S3C2410A微处理器简介 145
5.1.2 基于S3C2410A微处理器的硬件平台结构 146
5.2 存储器系统设计 148
5.2.1 存储器系统概述 148
5.2.2 S3C2410A的存储系统设计 151
5.3 串行接口设计 154
5.3.1 串行通信的基本概念 154
5.3.2 通用异步收发器(UART) 159
5.4 I/O接口设计 162
5.4.1 GPIO接口设计 162
5.4.2 A/D转换器 164
5.5 人机交互接口 169
5.5.1 LCD和触摸屏接口设计 169
5.5.2 触摸屏接口设计 172
5.5.3 键盘接口设计 173
5.6 嵌入式系统的网络接口设计 178
5.6.1 以太网接口的基本知识 178
5.6.2 嵌入式以太网接口的实现 182
5.6.3 基于ARM的RTL8019AS网络接口芯片的设计 183
5.7 嵌入式系统的调试接口ARM JTAG的设计 188
5.7.1 ARM的JTAG调试接口 189
5.7.2 JTAG的基本知识 190
练习题 194
第6章 基于μC/OS-Ⅱ的软件体系结构设计 195
6.1 基于μC/OS-Ⅱ扩展RTOS的体系结构 195
6.2 建立文件系统 197
6.2.1 文件系统简介 197
6.2.2 文件系统的实现过程 205
6.2.3 文件系统相关的API函数功能详解 208
6.3 外设及驱动程序 210
6.3.1 串行口 210
6.3.2 液晶显示驱动程序 211
6.3.3 键盘驱动程序 212
6.4 网络通信协议 213
6.4.1 基于ARM和μC/OS-Ⅱ的TCP/IP协议 213
6.4.2 网络编程接口 214
6.5 图形用户接口(GUI)函数 217
6.5.1 基于Unicode的汉字字库 217
6.5.2 Unicode字库的显示及相关函数 222
6.5.3 基本绘图函数 223
6.5.4 典型的控件 231
6.6 系统的消息队列 241
6.6.1 系统消息 241
6.6.2 消息相关函数 242
6.7 其他实用的应用程序接口(API)函数 243
练习题 248
第7章 嵌入式软件应用程序实例 249
7.1 建立基于μC/OS-Ⅱ的应用程序 249
7.1.1 在μC/OS-Ⅱ系统上运行的应用程序的结构 249
7.1.2 系统的消息循环 252
7.1.3 创建新任务以及任务之间的同步 252
7.2 绘图API函数 254
7.2.1 绘图的API函数应用举例 254
7.2.2 绘图的API函数应用举例的源代码 256
7.3 系统的消息循环 261
7.3.1 使用系统的消息循环 261
7.3.2 系统消息循环使用的源代码 264
7.4 文件的使用 268
7.4.1 文件的读取应用举例 269
7.4.2 文件的读取实现的源代码 270
7.5 列表框控件的使用 271
7.5.1 列表框控件的使用举例 272
7.5.2 列表框控件举例的源代码 274
7.6 文本框控件的使用 276
7.6.1 文本框控件的使用举例 276
7.6.2 文本框控件的举例源代码 278
7.7 系统的多任务和系统时钟 281
7.7.1 系统的多任务和系统时钟应用举例 281
7.7.2 系统的多任务和系统时钟举例源代码 283
7.8 UDP通信实验 287
7.8.1 UDP协议简介 287
7.8.2 socket简介 289
7.8.3 实验步骤 293
7.9 综合举例 296
7.9.1 综合举例的设计思路 296
7.9.2 综合举例的源代码 297
练习题 309
第8章 嵌入式系统的应用开发案例 310
8.1 嵌入式系统的设计方法 310
8.1.1 嵌入式系统的设计流程 310
8.1.2 嵌入式系统的软硬件划分 312
8.1.3 嵌入式系统软硬件协同设计 313
8.1.4 系统集成和测试 315
8.2 嵌入式数控系统设计开发实例 315
8.2.1 数控系统简介 315
8.2.2 需求分析 316
8.2.3 系统体系结构设计 317
8.2.4 软件设计 320
8.2.5 系统集成与测试 322
8.3 智能家居远程监控系统设计实例 323
8.3.1 智能家居远程监控系统简介 323
8.3.2 系统功能分析 324
8.3.3 系统方案设计 325
8.3.4 系统硬件结构设计 327
8.3.5 系统软件结构设计 329
附录A ADS1.2嵌入式开发环境配置简介 334
附录B 《嵌入式系统设计与实例开发》配套实验体系介绍 342
B.1 UP-NETARM2410-S实验教学平台介绍 342
B.2 实验教学内容及其基本要求 343
B.3 北京航空航天大学《嵌入式系统概论》实验课程大纲 349
参考文献 353