第1章 认识嵌入式系统 1
1.1 什么是嵌入式系统 1
1.2 嵌入式系统的发展历史 2
1.3 嵌入式系统的应用 3
1.4 常见的嵌入式操作系统 5
1.5 嵌入式Linux的优点 6
1.6 本书的内容以及结构 7
小结 8
思考与练习 8
第2章 在虚拟机上安装Linux 9
2.1 虚拟机软件简介 9
2.2 下载安装VMware Workstation Player 10
2.3 Linux发行版本简介 12
2.4 在虚拟机上安装CentOS 6.7 14
小结 23
思考与练习 23
第3章 搭建C语言开发环境 24
3.1 IDE和分步开发 24
3.2 安装C语言开发工具集 24
3.3 优化gedit编码环境 29
小结 35
思考与练习 35
第4章 第一个Linux C程序Hello world! 36
4.1 准备工作 36
4.2 编写代码 36
4.3 编译、链接程序 39
小结 43
思考与练习 43
第5章 使用自定义函数 44
5.1 在程序中使用自定义函数 44
5.2 使用多个自定义函数 48
小结 50
思考与练习 50
第6章 使用多个源文件编程 51
6.1 使用多个源文件编程 51
6.2 多源文件的项目编译 55
6.3 【项目6.1 】的另外版本 56
小结 58
思考与练习 58
第7章 认识和使用make工具 59
7.1 认识make工具 59
7.2 改进版Makefile 63
7.3 Makefile的进阶用法 65
7.3.1 伪目标 65
7.3.2 使用变量 66
小结 67
思考与练习 67
第8章 文件读写 68
8.1 基于句柄的文件读操作 68
8.2 基于句柄的文件写操作 71
8.3 基于流的文件读写操作 73
小结 76
思考与练习 76
第9章 网络通信编程 78
9.1 网络通信基本原理 78
9.2 网络编程基础 81
9.2.1 套接字 81
9.2.2 数据存储字节序 81
9.2.3 套接字数据类型 82
9.2.4 地址格式转换 83
9.2.5 网络编程流程 83
9.3 TCP协议网络编程实例 84
9.4 UDP协议网络编程实例 89
小结 94
思考与练习 95
第10章 驱动程序初步 96
10.1 驱动程序基本概念 96
10.2 最简单的字符设备驱动程序 98
10.3 驱动程序进阶1 103
10.4 测试程序 106
小结 108
思考与练习 108
第11章 驱动程序进阶2 109
11.1 具备读写接口的驱动程序 109
11.2 测试程序 113
小结 115
思考与练习 115
第12章 嵌入式Linux开发基础 116
12.1 嵌入式系统结构特点 116
12.2 嵌入式系统所采用的处理器(CPU) 117
12.3 凌阳实验箱简介 119
12.4 交叉编译 120
12.5 交叉编译工具arm-linux-gcc的安装和配置 122
12.6 在嵌入式Linux上运行第1个程序Hello world! 123
小结 126
思考与练习 126
第13章 控制板载LED 127
13.1 控制板载LED的方法和相关概念 127
13.2 爆闪式LED控制程序 129
13.3 跑马灯LED控制程序 131
13.4 按键读取程序 133
13.5 按键控制LED 136
小结 139
思考与练习 139
第14章 串口通信和GPIO的使用 140
14.1 串口通信基础 140
14.2 串口通信程序 143
14.3 GPIO基础 149
14.4 GPIO编程 150
小结 153
思考与练习 154
第15章 基于Qt的嵌入式Linux GUI程序设计基础 155
15.1 Qt相关概念 155
15.2 最简单的Qt应用程序Hello world! 157
15.3 人工编码的Hello world!程序 164
15.4 图形界面控制LED 166
小结 176
思考与练习 176
附录1 常用标准输入输出函数 177
附录2 基于句柄的文件读写函数 179
附录3 基于流的文件读写函数 181
附录4 基于套接字的网络通信函数 185