第1章 嵌入式系统基础 1
1.1嵌入式系统简介 1
1.1.1嵌入式系统的历史 1
1.1.2嵌入式系统特点 2
1.1.3嵌入式应用领域 3
1.1.4典型的嵌入式系统组成 5
1.2嵌入式操作系统分类 5
1.2.1嵌入式Linux 5
1.2.2 VxWorks 7
1.2.3 QNX 7
1.2.4 Windows CE 7
1.2.5 Palm OS 8
1.2.6 Uc/OS Ⅱ 8
1.3硬件开发平台 8
1.3.1 ARM处理器简介 8
1.3.2 ARM体系结构 9
1.3.3嵌入式Linux开发平台简介 12
1.4嵌入式Linux开发流程 15
1.4.1硬件平台选择 15
1.4.2软件平台的选择 16
1.4.3嵌入式Linux开发流程 16
本章小结 19
第2章Linux操作系统入门 20
2.1 Linux操作系统简介 20
2.1.1 Linux系统发展历史 20
2.1.2 Linux系统特点 21
2.1.3 Linux系统的发行版本 21
2.1.4 Linux的目录结构 22
2.1.5 Linux系统的文件类型 24
2.1.6磁盘及分区 26
2.2 Linux常用命令 27
2.2.1文件相关命令 27
2.2.2系统相关命令 38
2.2.3磁盘操作命令 43
2.2.4打包压缩命令 48
2.2.5网络操作命令 50
本章小结 54
第3章 嵌入式开发环境的建立 55
3.1操作系统的选择与安装 55
3.1.1硬盘安装Linux系统 55
3.1.2安装Cygwin软件 56
3.1.3虚拟机安装Linux系统 58
3.2交叉编译环境 61
3.2.1 arm-linux-gcc安装 62
3.2.2烧写工具安装 63
3.2.3安装gdb调试工具 63
3.3串口通信配置 63
3.3.1超级终端配置 63
3.3.2 minicom配置 65
3.4嵌入式Linux内核编译 67
3.4.1配置内核 67
3.4.2定制内核 68
3.5根文件系统制作 70
3.5.1目录结构 70
3.5.2制作文件系统 71
3.6 NFS配置 72
3.7系统引导程序(Boot Loader) 74
3.7.1常见的几种Boot Loader 75
3.7.2 Boot Loader原理 78
3.7.3 VIVI的第一阶段 79
3.7.4 VIVI的第二阶段 84
本章小结 86
第4章 嵌入式Linux的工具软件 87
4.1 vi编辑器 87
4.1.1 vi的命令模式 88
4.1.2插入模式 91
4.1.3末行命令模式 91
4.2 Emacs编辑器 93
4.2.1编辑模式 95
4.2.2 Emacs的启动与退出 96
4.2.3 Emacs编辑文件 97
4.3 GCC编译器 98
4.3.1程序例子 99
4.3.2 GCC编译选项 103
4.4 GDB调试器 106
4.4.1 GDB使用步骤 107
4.4.2 GDB的重要命令 108
4.5 Make工程管理器 115
4.5.1 make工作原理 116
4.5.2 makefile中使用变量 118
4.5.3编写Makefile的其他事项 122
本章小结 123
第5章 嵌入式C语言编程基础 124
5.1 C语言数据类型 125
5.1.1 C语言的数据类型 126
5.1.2常量与变量 128
5.1.3整形数据变量 130
5.1.4实型数据 132
5.2算术运算符和算术表达式 134
5.2.1运算符简介 135
5.2.2算术运算符和算术表达式 135
5.2.3关系和逻辑运算符 138
5.3 C语言程序结构 139
5.3.1程序基本组成 139
5.3.2程序注释 139
5.3.3程序流程控制 140
5.4几种特殊数据结构 147
5.4.1数组 147
5.4.2结构体 148
本章小节 151
第6章 文件及串口编程 152
6.1 Linux下文件概述 152
6.2非缓冲I/O函数 153
6.3 C语言标准库函数 163
6.4串口应用编程 165
6.4.1串口概述 165
6.4.2串口使用函数 167
6.4.3串口通信参数配置 171
6.4.4串口参数配置程序 174
6.4.5使用串口示例 179
本章小结 184
第7章 嵌入式Linux网络编程 185
7.1 TCP/IP协议 185
7.1.1 TCP/IP协议的OSI参考模型 185
7.1.2 TCP与UDP 186
7.2网络编程概述 188
7.3什么是Socket 189
7.3.1 Socket建立 189
7.3.2 Socket配置 190
7.4 LINUUX环境下的SOCKET编程举例 194
7.4.1阻塞和非阻塞 199
7.4.2 POP3客户端实例 200
本章小结 202
第8章 嵌入式设备驱动程序开发 203
8.1嵌入式设备驱动概述 203
8.1.1 Linux设备驱动概念与模块 203
8.1.2内核模块与应用程序的区别 203
8.1.3用户空间和内核空间 204
8.1.4设备分类 205
8.1.5主设备号和次设备号 206
8.1.6设备文件的操作 207
8.1.7模块的注册和卸载 210
8.2 LED电路设计 212
8.2.1程序设计 213
8.2.2模块初始化 216
8.2.3模块卸载 217
8.2.4完整的LED驱动程序 218
8.2.5 LED驱动测试程序 228
本章小结 230
参考资料 231