第1章 嵌入式系统概论 1
1.1 嵌入式系统定义 1
1.2 嵌入式系统硬件平台 2
1.2.1 嵌入式系统硬件平台概述 2
1.2.2 常见的嵌入式系统硬件平台 3
1.3 嵌入式系统软件平台 4
1.3.1 典型的嵌入式操作系统 4
1.3.2 嵌入式Linux操作系统优势 6
1.4 嵌入式ARM系统的应用 7
第2章 嵌入式微处理器ARM体系架构 9
2.1 ARM体系架构 9
2.1.1 ARM概述 9
2.1.2 ARM体系架构 9
2.2 ARM微处理器系列 11
2.2.1 ARM微处理器分类概述 11
2.2.2 ARM微处理器分类介绍 11
2.3 常见的ARM处理器介绍及选型 14
2.3.1 常见的ARM处理器介绍 14
2.3.2 ARM处理器选型 15
2.4本书的硬件环境 16
第3章 嵌入式Linux操作系统 18
3.1 Linux基础 18
3.1.1 Linux起源 18
3.1.2 Linux常用命令 19
3.1.3 Linux系统结构 19
3.2 Linux内核 20
3.2.1 Linux内核的作用 20
3.2.2 Linux内核的抽象结构 21
3.2.3 Linux内核源代码的结构 22
3.2.4 Linux内核的裁剪与编译 24
3.3 Linux文件系统 24
3.3.1 Linux文件系统概述 24
3.3.2 Romfs文件系统 25
3.3.3 JFFS2文件系统 25
3.3.4 YAFFS文件系统 26
3.4 Linux操作系统的实时性提高 26
3.4.1 实时操作系统概述 26
3.4.2 RTLinux实时操作系统 27
3.4.3 实时应用程序接口 28
3.4.4 实时操作系统小结 29
3.5 Linux操作系统的ARM平台移植 29
3.5.1 嵌入式操作系统移植概述 29
3.5.2 创建zImage及redboot 30
3.5.3 创建嵌入式Linux文件系统 31
第4章 构建嵌入式系统开发环境 32
4.1 嵌入式系统开发环境概述 32
4.2 使用Buildroot制作交叉编译器 33
4.2.1 Buildroot介绍 33
4.2.2 创建ARM目标的交叉编译器 33
4.3 使用Scratchbox制作交叉编译器 36
4.3.1 Scratchbox介绍 36
4.3.2 安装Scratchbox 37
4.3.3 创建ARM目标的交叉编译器 38
4.3.4 使用Scratchbox 38
4.4 其他相关工具 39
4.4.1 串口通信工具 39
4.4.2 简单文件传输协议 39
4.4.3 网络文件系统 40
第5章 移植图形用户界面及窗口管理器 41
5.1 嵌入式系统图形用户界面概述 41
5.2 嵌入式系统图形用户界面举例 41
5.2.1 XFree86用户界面 41
5.2.2 Microwindows用户界面 42
5.2.3 Qt/Embedded用户界面 43
5.2.4 MiniGUI用户界面 43
5.3 移植图形化用户界面TinyX 44
5.3.1 TinyX概述 44
5.3.2 移植TinyX到ARM-Linux平台 44
5.3.3 在ARM平台上运行TinyX 52
5.4 窗口管理器 54
5.4.1 窗口管理器概述 54
5.4.2 窗口管理器举例 54
5.5 移植窗口管理器JWM到ARM-Linux平台 59
第6章 嵌入式应用程序开发 60
6.1 嵌入式应用程序开发流程 60
6.2 使用GCC编译器 61
6.2.1 GCC介绍 61
6.2.2 GCC文件后缀约定 61
6.2.3 GCC执行过程 62
6.2.4 GCC使用方法及选项 62
6.2.5 GCC编译常见错误 63
6.3 使用make管理工具 64
6.3.1 make介绍 64
6.3.2 Makefile规则 65
6.3.3 Makefile的书写 66
6.3.4 一个简单的Makefile例子 67
6.4 使用GDB调试器 69
6.4.1 GDB调试器介绍 69
6.4.2 GDB调试器使用 70
第7章 嵌入式图形界面应用程序开发 73
7.1 基于Xlib库开发图形界面应用程序 73
7.1.1 Xlib库介绍 73
7.1.2 Xlib库基本API 73
7.1.3 基于Xlib库开发图形界面应用程序实例 77
7.2 使用GTK+开发嵌入式图形界面应用程序 82
7.2.1 GTK+及Glade介绍 82
7.2.2 使用GTK+编程 83
7.2.3 使用Glade设计界面 84
7.2.4 移植GTK+到ARM-Linux系统 87
7.2.5 GTK+开发图形界面应用程序实例 93
7.3 使用TCL/TK开发嵌入式图形界面应用程序 94
7.3.1 TCL/TK及Visual TCL介绍 94
7.3.2 使用TCL/TK进行编程 95
7.3.3 移植TCL/TK到ARM-Linux系统 102
7.3.4 TCL/TK开发图形界面应用程序实例 104
第8章 以太网及串口通信应用程序开发 105
8.1 串口通信应用程序开发 105
8.1.1 串口通信介绍 105
8.1.2 串口操作 107
8.1.3 串口应用程序实例 113
8.2 以太网通信应用程序开发 115
8.2.1 以太网通信介绍 115
8.2.2 以太网操作 115
8.2.3 以太网应用程序实例 118
8.3 Modbus现场总线应用程序开发 120
8.3.1 Modbus介绍 120
8.3.2 Modbus帧的组成 121
8.3.3 Modbus应用程序实例 126
第9章 数值计算软件Scilab 129
9.1 Scilab介绍 129
9.2 Scilab基本运算 130
9.2.1 数据类型 130
9.2.2 基本数值运算函数 135
9.2.3 矩阵相关函数 137
9.2.4 字符串相关函数 139
9.2.5 其他常用函数 141
9.3 Scilab程序设计 151
9.3.1 循环结构 151
9.3.2 选择结构 152
9.3.3 脚本函数 153
9.3.4 Scilab绘制图形 154
9.4 使用Scilab求解方程 157
9.4.1求解线性方程组 157
9.4.2求解非线性方程 158
9.5 使用Scicos建模 158
9.5.1 Scicos介绍 158
9.5.2使用Scicos建模 158
9.6扩展Scilab 160
9.6.1使用TCL/TK创建图形界面 160
9.6.2使用C语言扩展接口 160
第10章 嵌入式Scilab计算平台构建 163
10.1移植Scilab到ARM平台 163
10.1.1移植Scilab到ARM平台分析 163
10.1.2移植Scilab到ARM平台步骤 163
10.2嵌入式ARM系统上运行Scilab 164
10.2.1在ARM上生成Scilab Macros 164
10.2.2在ARM上运行Scilab 165
10.3创建Scilab的数据采集工具箱 166
10.3.1 Scilab工具箱组成介绍 166
10.3.2 Scilab数据采集工具包制作 167
第11章 嵌入式Scilab的复杂计算应用 171
11.1 PID控制系统 171
11.1.1 PID控制原理 171
11.1.2数字PID控制算法 172
11.1.3使用Scilab设计PID控制系统 174
11.1.4基于Scilab的数字PID控制系统举例 178
11.2模糊控制系统 179
11.2.1模糊控制介绍 179
11.2.2模糊理论基础 180
11.2.3模糊控制系统设计 182
11.2.4 Scilab模糊控制工具包 185
11.3遗传算法 194
11.3.1遗传算法概述 194
11.3.2遗传算法基本操作 195
11.3.3遗传算法步骤 202
11.3.4 Scilab遗传算法工具包 203
11.3.5遗传算法的应用 206
11.4神经网络 207
11.4.1神经网络概述 207
11.4.2 BP模型网络结构 208
11.4.3 BP网络学习算法 208
11.4.4 Scilab神经网络工具包 211
11.5信号处理与语音处理 213
11.5.1信号处理 213
11.5.2语音处理 215
11.6嵌入式Scilab的应用 217
第12章 嵌入式其他应用程序开发举例 218
12.1嵌入式Web Server的实现 218
12.1.1嵌入式Web Server概述 218
12.1.2嵌入式Web Server Boa概述 219
12.1.3嵌入式Web Server Boa移植 221
12.1.4配置嵌入式Web Server Boa 222
12.1.5嵌入式Web Server的应用 223
12.2嵌入式数据库应用程序开发 224
12.2.1嵌入式数据库Sqlite概述 224
12.2.2嵌入式数据库Sqlite的移植 226
12.2.3使用Sqlite嵌入式数据库 226
参考文献 228
附录 本书配套光盘说明 229
结束语 230