【内容】
模板788

















































书名:嵌入式 Linux应用程序开发标准教程(第2版)(附光盘)

















ISBN:9787115194749






定价:49.00元






装帧:平装






是否套装书:否

















出版时间:2015年07月






页数:396页






开本:16开






单色/彩色:单色






























































众多专家、厂商联合推荐 业界权威培训机构的经验总结 畅销图书升级改版 重视实践应用 赠送36小时嵌入式专家讲座视频和教学课件






























































华清远见嵌入式培训中心 编著































































本书主要分为3个部分,包括Linux基础、搭建嵌入式Linux环境和嵌入式Linux的应用开发。Linux基础部分从Linux基础、基本操作命令讲起,为Linux初学者能快速入门提供了保证。接着系统地讲解了嵌入式Linux的环境搭建,以及嵌入式Linux的I/O与文件系统的开发、进程控制开发、进程间通信开发、网络应用开发、基于中断的开发、设备驱动程序的开发以及嵌入式图形界面的开发等,并且还安排了丰富的实验内容与课后实践,使读者能够边学边用,更快更好地掌握所学知识。 本书可作为高等院校电子类、电气类、控制类等专业高年级本科生、研究生学习嵌入式Linux的教材,也可供希望转入嵌入式领域的科研和工程技术人员参考使用,还可作为嵌入式培训班的教材和参考书。





























































第1章 Linux快速入门 1
1.1 嵌入式Linux基础 1
1.1.1 Linux发展概述 2
1.1.2 Linux作为嵌入式操作系统的优势 2
1.1.3 Linux发行版本 3
1.1.4 如何学习Linux 4
1.2 Linux安装 4
1.2.1 基础概念 5
1.2.2 硬件需求 6
1.2.3 安装准备 7
1.3 Linux文件及文件系统 7
1.3.1 文件类型及文件属性 7
1.3.2 文件系统类型介绍 9
1.3.3 Linux目录结构 10
1.4 实验内容——安装Linux操作系统 11
1.5 本章小结 12
1.6 思考与练习 12
第2章 Linux基础命令 13
2.1 Linux常用命令 13
2.1.1 用户系统相关命令 14
2.1.2 文件相关命令 21
2.1.3 压缩打包相关命令 32
2.1.4 文件比较合并相关命令 34
2.1.5 网络相关命令 38
2.2 Linux启动过程详解 43
2.2.1 概述 43
2.2.2 内核引导阶段 44
2.2.3 init阶段 45
2.3 Linux系统服务 47
2.3.1 独立运行的服务 48
2.3.2 xinetd设定的服务 48
2.3.3 系统服务的其他相关命令 49
2.4 实验内容 50
2.4.1 在Linux下解压常见软件 50
2.4.2 定制Linux系统服务 51
2.5 本章小结 52
2.6 思考与练习 52
第3章 Linux下C编程基础 53
3.1 Linux下C语言编程概述 53
3.1.1 C语言简单回顾 53
3.1.2 Linux下C语言编程环境概述 54
3.2 常用编辑器 55
3.2.1 进入vi 55
3.2.2 初探emacs 57
3.3 gcc编译器 60
3.3.1 gcc编译流程解析 60
3.3.2 gcc编译选项分析 62
3.4 gdb调试器 67
3.4.1 gdb使用流程 67
3.4.2 gdb基本命令 71
3.5 make工程管理器 75
3.5.1 makefile基本结构 75
3.5.2 makefile变量 76
3.5.3 makefile规则 79
3.5.4 make管理器的使用 80
3.6 使用autotools 80
3.6.1 autotools使用流程 81
3.6.2 使用autotools所生成的makefile 84
3.7 实验内容 86
3.7.1 vi使用练习 86
3.7.2 用gdb调试程序的bug 87
3.7.3 编写包含多文件的makefile 89
3.7.4 使用autotools生成包含多文件的makefile 91
3.8 本章小结 92
3.9 思考与练习 93
第4章 嵌入式系统基础 94
4.1 嵌入式系统概述 94
4.1.1 嵌入式系统简介 94
4.1.2 嵌入式系统发展历史 95
4.1.3 嵌入式系统的特点 96
4.1.4 嵌入式系统的体系结构 96
4.1.5 几种主流嵌入式操作系统分析 97
4.2 ARM处理器硬件开发平台 99
4.2.1 ARM处理器简介 99
4.2.2 ARM体系结构简介 101
4.2.3 ARM9体系结构 101
4.2.4 S3C2410处理器详解 104
4.3 嵌入式软件开发流程 109
4.3.1 嵌入式系统开发概述 109
4.3.2 嵌入式软件开发概述 109
4.4 实验内容——使用JTAG烧写Nand Flash 114
4.5 本章小结 116
4.6 思考与练习 117
第5章 嵌入式Linux开发环境的搭建 118
5.1 嵌入式开发环境的搭建 118
5.1.1 嵌入式交叉编译环境的搭建 118
5.1.2 超级终端和minicom配置及使用 120
5.1.3 下载映像到开发板 123
5.1.4 编译嵌入式Linux内核 126
5.1.5 Linux内核源码目录结构 129
5.1.6 制作文件系统 130
5.2 U-Boot移植 134
5.2.1 Bootloader介绍 134
5.2.2 U-Boot概述 136
5.2.3 U-Boot源码导读 137
5.2.4 U-Boot移植主要步骤 142
5.3 实验内容——创建Linux内核和文件系统 150
5.4 本章小结 151
5.5 思考与练习 151
第6章 文件I/O编程 152
6.1 Linux系统调用及用户编程接口(API) 152
6.1.1 系统调用 152
6.1.2 用户编程接口(API) 153
6.1.3 系统命令 153
6.2 Linux中文件及文件描述符概述 153
6.3 底层文件I/O操作 154
6.3.1 基本文件操作 154
6.3.2 文件锁 158
6.3.3 多路复用 163
6.4 嵌入式Linux串口应用编程 171
6.4.1 串口概述 171
6.4.2 串口设置详解 172
6.4.3 串口使用详解 181
6.5 标准I/O编程 185
6.5.1 基本操作 185
6.5.2 其他操作 189
6.6 实验内容 191
6.6.1 文件读写及上锁 191
6.6.2 多路复用式串口操作 198
6.7 本章小结 202
6.8 思考与练习 202
第7章 进程控制开发 203
7.1 Linux进程概述 203
7.1.1 进程的基本概念 203
7.1.2 Linux下的进程结构 205
7.1.3 Linux下进程的模式和类型 205
7.1.4 Linux下的进程管理 205
7.2 Linux进程控制编程 206
7.3 Linux守护进程 217
7.3.1 守护进程概述 217
7.3.2 编写守护进程 218
7.3.3 守护进程的出错处理 221
7.4 实验内容 225
7.4.1 编写多进程程序 225
7.4.2 编写守护进程 229
7.5 本章小结 231
7.6 思考与练习 232
第8章 进程间通信 233
8.1 Linux下进程间通信概述 233
8.2 管道 234
8.2.1 管道概述 234
8.2.2 管道系统调用 235
8.2.3 标准流管道 237
8.2.4 FIFO 239
8.3 信号 243
8.3.1 信号概述 243
8.3.2 信号发送与捕捉 245
8.3.3 信号的处理 247
8.4 信号量 254
8.4.1 信号量概述 254
8.4.2 信号量的应用 255
8.5 共享内存 260
8.5.1 共享内存概述 260
8.5.2 共享内存的应用 260
8.6 消息队列 266
8.6.1 消息队列概述 266
8.6.2 消息队列的应用 266
8.7 实验内容 271
8.7.1 管道通信实验 271
8.7.2 共享内存实验 275
8.8 本章小结 280
8.9 思考与练习 280
第9章 多线程编程 281
9.1 Linux线程概述 281
9.1.1 线程概述 281
9.1.2 线程机制的分类和特性 282
9.2 Linux线程编程 282
9.2.1 线程基本编程 282
9.2.2 线程之间的同步与互斥 286
9.2.3 线程属性 293
9.3 实验内容——“生产者消费者”实验 297
9.4 本章小结 302
9.5 思考与练习 302
第10章 嵌入式Linux网络编程 303
10.1 TCP/IP概述 303
10.1.1 OSI参考模型及TCP/IP参考模型 303
10.1.2 TCP/IP协议族 304
10.1.3 TCP和UDP 304
10.2 网络基础编程 307
10.2.1 socket概述 307
10.2.2 地址及顺序处理 307
10.2.3 socket基础编程 312
10.3 网络高级编程 319
10.4 实验内容——NTP协议实现 324
10.5 本章小结 330
10.6 思考与练习 330
第11章 嵌入式Linux设备驱动开发 331
11.1 设备驱动概述 331
11.1.1 设备驱动简介及驱动模块 331
11.1.2 设备分类 332
11.1.3 设备号 333
11.1.4 驱动层次结构 333
11.1.5 设备驱动程序与外界的接口 334
11.1.6 设备驱动程序的特点 334
11.2 字符设备驱动编程 335
11.3 GPIO驱动程序实例 343
11.3.1 GPIO工作原理 343
11.3.2 GPIO驱动程序 345
11.4 块设备驱动编程 351
11.5 中断编程 354
11.6 按键驱动程序实例 355
11.6.1 按键工作原理 355
11.6.2 按键驱动程序 356
11.6.3 按键驱动的测试程序 363
11.7 实验内容——test驱动 365
11.8 本章小结 371
11.9 思考与练习 371
第12章 Qt图形编程基础 372
12.1 嵌入式GUI简介 372
12.1.1 Qt/Embedded 373
12.1.2 MiniGUI 373
12.1.3 Microwindows、Tiny X等 374
12.2 Qt/Embedded开发入门 374
12.2.1 Qt/Embedded介绍 374
12.2.2 Qt/Embedded信号和插槽机制 377
12.2.3 搭建Qt/Embedded开发环境 380
12.2.4 Qt/Embedded窗口部件 382
12.2.5 Qt/Embedded图形界面编程 385
12.2.6 Qt/Embedded对话框设计 387
12.3 实验内容——使用Qt编写“Hello,World”程序 391
12.4 本章小结 396






























本书主要分为3个部分,包括Linux基础、搭建嵌入式Linux环境和嵌入式Linux的应用开发。Linux基础部分从Linux基础、基本操作命令讲起,为Linux初学者能快速入门提供了保证。接着系统地讲解了嵌入式Linux的环境搭建,以及嵌入式Linux的I/O与文件系统的开发、进程控制开发、进程间通信开发、网络应用开发、基于中断的开发、设备驱动程序的开发以及嵌入式图形界面的开发等,并且还安排了丰富的实验内容与课后实践,使读者能够边学边用,更快更好地掌握所学知识。   本书可作为高等院校电子类、电气类、控制类等专业高年级本科生、研究生学习嵌入式Linux的教材,也可供希望转入嵌入式领域的科研和工程技术人员参考使用,还可作为嵌入式培训班的教材和参考书。
【目录】
目 录



第 1章 Linux快速入门 1

1.1 嵌入式Linux基础 1

1.1.1 Linux发展概述 2

1.1.2 Linux作为嵌入式操作系统的优势 2

1.1.3 Linux发行版本 3

1.1.4 如何学习Linux 4

1.2 Linux安装 4

1.2.1 基础概念 5

1.2.2 硬件需求 6

1.2.3 安装准备 7

1.3 Linux文件及文件系统 7

1.3.1 文件类型及文件属性 7

1.3.2 文件系统类型介绍 9

1.3.3 Linux目录结构 10

1.4 实验内容——安装Linux操作系统 11

1.5 本章小结 12

1.6 思考与练习 12



第 2章 Linux基础命令 13

2.1 Linux常用命令 13

2.1.1 用户系统相关命令 14

2.1.2 文件相关命令 21

2.1.3 压缩打包相关命令 32

2.1.4 文件比较合并相关命令 34

2.1.5 网络相关命令 38

2.2 Linux启动过程详解 43

2.2.1 概述 43

2.2.2 内核引导阶段 44

2.2.3 init阶段 45

2.3 Linux系统服务 47

2.3.1 独立运行的服务 48

2.3.2 xinetd设定的服务 48

2.3.3 系统服务的其他相关命令 49

2.4 实验内容 50

2.4.1 在Linux下解压常见软件 50

2.4.2 定制Linux系统服务 51

2.5 本章小结 52

2.6 思考与练习 52



第3章 Linux下C编程基础 53

3.1 Linux下C语言编程概述 53

3.1.1 C语言简单回顾 53

3.1.2 Linux下C语言编程环境概述 54

3.2 常用编辑器 55

3.2.1 进入vi 55

3.2.2 初探emacs 57

3.3 gcc编译器 60

3.3.1 gcc编译流程解析 60

3.3.2 gcc编译选项分析 62

3.4 gdb调试器 67

3.4.1 gdb使用流程 67

3.4.2 gdb基本命令 71

3.5 make工程管理器 75

3.5.1 makefile基本结构 75

3.5.2 makefile变量 76

3.5.3 makefile规则 79

3.5.4 make管理器的使用 80

3.6 使用autotools 80

3.6.1 autotools使用流程 81

3.6.2 使用autotools所生成的makefile 84

3.7 实验内容 86

3.7.1 vi使用练习 86

3.7.2 用gdb调试程序的bug 87

3.7.3 编写包含多文件的makefile 89

3.7.4 使用autotools生成包含多文件的makefile 91

3.8 本章小结 92

3.9 思考与练习 93



第4章 嵌入式系统基础 94

4.1 嵌入式系统概述 94

4.1.1 嵌入式系统简介 94

4.1.2 嵌入式系统发展历史 95

4.1.3 嵌入式系统的特点 96

4.1.4 嵌入式系统的体系结构 96

4.1.5 几种主流嵌入式操作系统分析 97

4.2 ARM处理器硬件开发平台 99

4.2.1 ARM处理器简介 99

4.2.2 ARM体系结构简介 101

4.2.3 ARM9体系结构 101

4.2.4 S3C2410处理器详解 104

4.3 嵌入式软件开发流程 109

4.3.1 嵌入式系统开发概述 109

4.3.2 嵌入式软件开发概述 109

4.4 实验内容——使用JTAG烧写Nand Flash 114

4.5 本章小结 116

4.6 思考与练习 117



第5章 嵌入式Linux开发环境的搭建 118

5.1 嵌入式开发环境的搭建 118

5.1.1 嵌入式交叉编译环境的搭建 118

5.1.2 超级终端和minicom配置及使用 120

5.1.3 下载映像到开发板 123

5.1.4 编译嵌入式Linux内核 126

5.1.5 Linux内核源码目录结构 129

5.1.6 制作文件系统 130

5.2 U-Boot移植 134

5.2.1 Bootloader介绍 134

5.2.2 U-Boot概述 136

5.2.3 U-Boot源码导读 137

5.2.4 U-Boot移植主要步骤 142

5.3 实验内容——创建Linux内核和文件系统 150

5.4 本章小结 151

5.5 思考与练习 151



第6章 文件I/O编程 152

6.1 Linux系统调用及用户编程接口(API) 152

6.1.1 系统调用 152

6.1.2 用户编程接口(API) 153

6.1.3 系统命令 153

6.2 Linux中文件及文件描述符概述 153

6.3 底层文件I/O操作 154

6.3.1 基本文件操作 154

6.3.2 文件锁 158

6.3.3 多路复用 163

6.4 嵌入式Linux串口应用编程 171

6.4.1 串口概述 171

6.4.2 串口设置详解 172

6.4.3 串口使用详解 181

6.5 标准I/O编程 185

6.5.1 基本操作 185

6.5.2 其他操作 189

6.6 实验内容 191

6.6.1 文件读写及上锁 191

6.6.2 多路复用式串口操作 198

6.7 本章小结 202

6.8 思考与练习 202



第7章 进程控制开发 203

7.1 Linux进程概述 203

7.1.1 进程的基本概念 203

7.1.2 Linux下的进程结构 205

7.1.3 Linux下进程的模式和类型 205

7.1.4 Linux下的进程管理 205

7.2 Linux进程控制编程 206

7.3 Linux守护进程 217

7.3.1 守护进程概述 217

7.3.2 编写守护进程 218

7.3.3 守护进程的出错处理 221

7.4 实验内容 225

7.4.1 编写多进程程序 225

7.4.2 编写守护进程 229

7.5 本章小结 231

7.6 思考与练习 232



第8章 进程间通信 233

8.1 Linux下进程间通信概述 233

8.2 管道 234

8.2.1 管道概述 234

8.2.2 管道系统调用 235

8.2.3 标准流管道 237

8.2.4 FIFO 239

8.3 信号 243

8.3.1 信号概述 243

8.3.2 信号发送与捕捉 245

8.3.3 信号的处理 247

8.4 信号量 254

8.4.1 信号量概述 254

8.4.2 信号量的应用 255

8.5 共享内存 260

8.5.1 共享内存概述 260

8.5.2 共享内存的应用 260

8.6 消息队列 266

8.6.1 消息队列概述 266

8.6.2 消息队列的应用 266

8.7 实验内容 271

8.7.1 管道通信实验 271

8.7.2 共享内存实验 275

8.8 本章小结 280

8.9 思考与练习 280



第9章 多线程编程 281

9.1 Linux线程概述 281

9.1.1 线程概述 281

9.1.2 线程机制的分类和特性 282

9.2 Linux线程编程 282

9.2.1 线程基本编程 282

9.2.2 线程之间的同步与互斥 286

9.2.3 线程属性 293

9.3 实验内容——“生产者消费者”实验 297

9.4 本章小结 302

9.5 思考与练习 302



第 10章 嵌入式Linux网络编程 303

10.1 TCP/IP概述 303

10.1.1 OSI参考模型及TCP/IP参考模型 303

10.1.2 TCP/IP协议族 304

10.1.3 TCP和UDP 304

10.2 网络基础编程 307

10.2.1 socket概述 307

10.2.2 地址及顺序处理 307

10.2.3 socket基础编程 312

10.3 网络编程 319

10.4 实验内容——NTP协议实现 324

10.5 本章小结 330

10.6 思考与练习 330



第 11章 嵌入式Linux设备驱动开发 331

11.1 设备驱动概述 331

11.1.1 设备驱动简介及驱动模块 331

11.1.2 设备分类 332

11.1.3 设备号 333

11.1.4 驱动层次结构 333

11.1.5 设备驱动程序与外界的接口 334

11.1.6 设备驱动程序的特点 334

11.2 字符设备驱动编程 335

11.3 GPIO驱动程序实例 343

11.3.1 GPIO工作原理 343

11.3.2 GPIO驱动程序 345

11.4 块设备驱动编程 351

11.5 中断编程 354

11.6 按键驱动程序实例 355

11.6.1 按键工作原理 355

11.6.2 按键驱动程序 356

11.6.3 按键驱动的测试程序 363

11.7 实验内容——test驱动 365

11.8 本章小结 371

11.9 思考与练习 371



第 12章 Qt图形编程基础 372

12.1 嵌入式GUI简介 372

12.1.1 Qt/Embedded 373

12.1.2 MiniGUI 373

12.1.3 Microwindows、Tiny X等 374

12.2 Qt/Embedded开发入门 374

12.2.1 Qt/Embedded介绍 374

12.2.2 Qt/Embedded信号和插槽机制 377

12.2.3 搭建Qt/Embedded开发环境 380

12.2.4 Qt/Embedded窗口部件 382

12.2.5 Qt/Embedded图形界面编程 385

12.2.6 Qt/Embedded对话框设计 387

12.3 实验内容——使用Qt编写“Hello,World”程序 391

12.4 本章小结 396
返回顶部