目录 1
第1章 嵌入式系统概述 1
1.1 嵌入式系统简介 1
1.1.1 什么是嵌入式系统 1
1.1.2 嵌入式系统的特点 4
1.1.3 嵌入式系统的分类 5
1.2 嵌入式系统的应用领域 10
1.3 嵌入式系统在机电控制方面的应用 12
1.4 嵌入式系统的现状和发展趋势 14
1.4.1 嵌入式系统的现状 14
1.4.2 未来嵌入式系统的发展趋势 15
练习题 16
第2章 嵌入式系统的基本知识 18
2.1 嵌入式微处理器和嵌入式操作系统 18
2.1.1 嵌入式微处理器 18
2.1.2 嵌入式操作系统 23
2.2 嵌入式系统的选型原则 28
2.2.1 硬件平台的选择 28
2.2.2 嵌入式操作系统的选型原则 29
2.3 嵌入式系统中的一些重要概念 32
2.3.1 基本概念 32
2.4 基于ARM和μC/OS-Ⅱ的嵌入式开发平台 34
2.3.2 关于实时系统的概念 34
2.4.1 为什么选择ARM和μC/OS-Ⅱ 35
2.4.2 UP-NetARM300嵌入式开发平台简介 36
2.4.3 UP-NetARM300嵌入式开发平台结构 36
练习题 38
第3章 嵌入式系统的设计方法 39
3.1 嵌入式系统的总体结构 39
3.2 嵌入式系统的设计方法 42
3.2.1 嵌入式系统的设计流程 42
3.2.2 嵌入式系统的一般设计方法 43
3.2.3 嵌入式系统的硬件/软件协同设计技术 45
3.3 SDT仿真开发环境概述 47
3.3.1 ARM仿真器的流程简介 48
3.3.2 重要概念 48
3.4 开发简单的嵌入式应用程序 49
3.4.1 配置ARM SDT2.5开发环境及编程 49
3.4.2 进行程序的在线仿真、调试 55
3.4.3 下载程序 58
3.4.4 Source Insight简介 60
第4章 μC/OS-Ⅱ在ARM微处理器上的移植 62
4.1 移植——将μC/OS-Ⅱ移植到自己的硬件平台 62
4.2.1 设置includes.h中与处理器和编译器相关的代码 64
4.2 μC/OS-Ⅱ在S3C44B0X上的移植 64
4.2.2 用C语言编写6个操作系统相关的函数(OS_CPU_C.C) 65
4.2.3 用汇编语言编写4个与处理器相关的函数(OS_CPU.ASM) 68
练习题 70
第5章 基于μC/OS-Ⅱ建立自己的RTOS 71
5.1 基于μC/OS-Ⅱ扩展RTOS的体系结构 71
5.2 建立文件系统 73
5.2.1 文件系统简介 73
5.2.2 文件系统的实现过程 81
5.2.3 文件系统相关的API函数功能详解 84
5.3.1 串行口 85
5.3 外设及驱动程序 85
5.3.2 液晶显示驱动程序 86
5.3.3 键盘驱动程序 88
5.3.4 USB接口 88
5.3.5 网络相关组件 89
5.4 图形用户接口(GUI)函数 92
5.4.1 基于Unicode的汉字字库 92
5.4.2 Unicode字库的显示及相关函数 98
5.5 基本绘图函数 98
5.5.1 相关绘图函数 99
5.5.2 典型的控件 107
5.6 系统的消息队列 117
5.6.1 系统消息 117
5.6.2 消息相关函数 118
5.7 其他实用的应用程序接口(API)函数 119
练习题 124
第6章 ARM7的硬件开发平台介绍 125
6.1 ARM7微处理器简介 125
6.1.1 ARM系列芯片简介 125
6.1.2 ARM7TDMI简介 125
6.2.1 SamsungS3C44B0X简介 126
6.2 基于S3C44B0X微处理器的嵌入式系统 126
6.1.3 Samsung S3C44B0X介绍 126
6.2.2 基于S3C44B0X微处理器的嵌入式系统体系结构 131
6.3 存储器系统介绍 131
6.4 接口介绍 134
6.4.1 通用异步收发器(UART) 134
6.4.2 USB接口 141
6.4.3 I/O接口设计 155
6.4.4 A/D转换器 156
6.5 人机交互接口 160
6.5.1 LCD显示模块 160
6.5.2 触摸屏模块 163
6.5.3 键盘模块 166
6.6 嵌入式系统的网络接口设计 171
6.6.1 以太网接口的基本知识 171
6.6.2 嵌入式的以太网接口的实现 173
6.6.3 基于ARM的RTL8019AS网络接口芯片的设计 174
6.6.4 在嵌入式系统中主要处理的以太网协议 179
6.6.5 基于ARM和μC/OS-Ⅱ的TCP/IP协议 181
6.6.6 网络编程接口 182
6.7.1 ARM的JTAG调试接口 183
6.7 嵌入式系统的调试接口ARM JTAG的设计 183
6.7.2 JTAG的基本知识 185
6.7.3 ARM7TDMI内核的JTAG扫描链结构 190
6.7.4 ARM7TDMI中通过JTAG对外设的访问 193
练习题 195
第7章 基于μC/OS-Ⅱ的应用程序的建立 196
7.1 μC/OS-Ⅱ实时多任务操作系统简介 196
7.1.1 任务 196
7.1.2 任务的状态 197
7.1.3 任务调度 198
7.1.4 μC/OS-Ⅱ初始化 198
7.2 在μC/OS-Ⅱ系统上运行的应用程序的结构 199
7.1.5 μC/OS-Ⅱ的启动 199
7.3 建立应用程序 202
7.3.1 系统的消息循环 202
7.3.2 创建新任务以及任务之间的同步 203
7.3.3 使用绘图函数 204
7.3.4 系统的控件 206
练习题 207
第8章 嵌入式应用程序举例 208
8.1 绘图API函数 208
8.1.1 绘图的API函数应用举例 208
8.1.2 绘图的API函数应用举例的源代码 210
8.2 系统的消息循环 215
8.2.1 使用系统的消息循环 215
8.2.2 系统的消息循环使用的源代码 217
8.3 USB连机通信 222
8.3.1 USB连机通信程序的实现过程 222
8.3.2 USB连机通信程序实现的源代码 223
8.4 文件的使用 224
8.4.1 文件的读取应用举例 224
8.4.2 文件的读取实现的源代码 225
8.5 列表框控件的使用 226
8.5.1 列表框控件的使用举例 227
8.5.2 列表框控件举例的源代码 228
8.6 文本框控件的使用 230
8.6.1 文本框控件的使用举例 230
8.6.2 文本框控件举例的源代码 232
8.7 系统的多任务和系统时钟 235
8.7.1 系统的多任务和系统时钟应用举例 235
8.7.2 系统的多任务和系统时钟举例源代码 237
8.8 UDP通信实验 241
8.9 综合举例 250
8.9.1 综合举例的设计思路 251
8.9.2 综合举例的源代码 253
练习题 259
第9章 嵌入式机器人控制器的设计 260
9.1 基于PC的机器人控制系统 260
9.1.1 基于DSP的嵌入式网络直流伺服驱动器 261
9.1.2 PC机与网络直流伺服驱动器的接口关系 262
9.2 两自由度机器人控制软件结构设计 263
9.2.1 G代码编辑环境 264
9.2.2 G代码解析 266
9.2.3 轨迹插补与运动学逆解 266
9.3 机器人控制 267
9.3.2 运动轨迹仿真及机器人运动学逆解的实现 268
9.3.1 两自由度机器人控制软件的实现 268
9.3.3 机器人控制的实现 270
9.4 嵌入式机器人控制器设计 271
9.4.1 嵌入式控制器可以取代PC机码 271
9.4.2 嵌入式机器人控制器的结构 271
9.4.3 嵌入式机器人控制器应用程序设计 271
9.4.4 菜单式应用程序的结构分析 272
9.4.5 用嵌入式控制器实现机器人控制 275
9.4.6 嵌入式控制与网络直流伺服驱动器的通信接口 277
练习题 280
10.1.1 中国的工程机械 281
10.1 工程机械在国民经济发展中的重要意义 281
第10章 嵌入式工程机械监控器 281
10.1.2 工程机械的监控器 282
10.2 基于ARM的工程机械监控器 283
10.2.1 监控器的硬件结构 285
10.2.2 CAN总线的扩展 285
10.2.3 监控器的功能及相关函数 288
练习题 310
附录1 基于μC/OS-Ⅱ和μC/OS的一些产品 311
附录2 国外高校嵌入式系统课程的体系结构 323
附录3 《嵌入式系统设计》教学实验体系 328
参考文献 331