出版信息
图书名:基于项目驱动的嵌入式Linux套用设计开发
作者:刘志强、王晓强、庄旭菲、李文静
定价:59.50元
印次:1-2
ISBN:9787302435624
出版日期:2016.07.01
印刷日期:2017.06.21
印次:1-2
ISBN:9787302435624
出版日期:2016.07.01
印刷日期:2017.06.21
内容简介
本书围绕一个典型的嵌入式系统项目——农业信息採集控制系统的设计过程展开介绍,首先进行系统整体的软硬体设计,然后分嵌入式Linux系统移植和嵌入式Linux的套用开发两大部分对系统进行详细设计。
图书目录
目录Contents第1章嵌入式系统概述及项目分析1
1.1嵌入式Linux系统概述1
1.1.1嵌入式Linux简介1
1.1.2嵌入式系统中使用Linux的优势1
1.2农业信息採集控制系统总体分析设计2
1.2.1农业信息採集控制系统介绍2
1.2.2农业信息採集控制系统硬体设计3
1.2.3农业信息採集控制系统软体设计9
习题111
第2章嵌入式Linux开发环境12
2.1项目目标12
2.2LinuxShell与常用命令12
2.2.1LinuxShell简介12
2.2.2Linux常用命令与使用14
2.3Linux文本编辑器vi37
2.3.1vi编辑器简介37
2.3.2vi的操作模式38
2.3.3命令模式命令39
2.3.4底行模式命令40
2.4Shell脚本编程41
2.4.1Shell脚本的建立与执行41
2.4.2变数41
2.4.3命令的执行顺序44
2.4.4命令替换45
2.4.5算术运算45
2.4.6Shell特殊字元46◆基于项目驱动的嵌入式Linux套用设计开发目录2.4.7位置参数47
2.4.8条件测试48
2.4.9控制流结构50
2.5嵌入式Linux开发工具56
2.5.1编译工具gcc56
2.5.2工程管理Makefile62
2.5.3调试工具gdb66
2.5.4交叉编译工具链70
2.6嵌入式Linux开发环境搭建71
2.6.1安装Linux作业系统71
2.6.2超级终端minicom89
2.6.3网路档案系统NFS90
2.6.4简单档案传输协定TFTP92
2.6.5安装交叉编译工具94
习题296
第3章嵌入式Linux系统移植97
3.1项目目标97
3.2Bootloader移植97
3.2.1Bootloader简介97
3.2.2Bootloader启动流程98
3.2.3Bootloader的工作模式98
3.2.4常用Bootloader介绍99
3.2.5UBoot工程简介100
3.2.6UBoot源码结构100
3.2.7UBoot的编译101
3.2.8UBoot的移植104
3.2.9UBoot的使用112
3.3嵌入式Linux核心移植113
3.3.1Linux核心结构113
3.3.2Linux核心配置116
3.3.3嵌入式Linux核心移植123
3.4嵌入式Linux档案系统移植136
3.4.1Linux档案系统介绍136
3.4.2常见的嵌入式档案系统138
3.4.3嵌入式系统存储设备及其管理机制140
3.4.4Busybox141
3.4.5嵌入式Linux档案系统移植142
习题3149
第4章嵌入式Linux驱动开发150
4.1项目目标150
4.2Linux设备驱动程式概述150
4.2.1驱动程式介绍150
4.2.2核心态和用户态151
4.2.3设备档案151
4.3模组的构造与运行153
4.3.1Linux的模组化机制153
4.3.2模组操作相关命令153
4.3.3核心模组的程式结构155
4.3.4核心模组编译和运行155
4.4核心调试技术157
4.4.1列印调试157
4.4.2查询调试158
4.4.3使用strace命令进行调试158
4.5字元设备驱动160
4.5.1确定设备号160
4.5.2字元设备的注册与注销161
4.5.3cdev结构体163
4.5.4创建字元设备节点164
4.5.5设备驱动程式接口165
4.5.6互动数据169
4.5.7一个简单的字元设备驱动实例169
4.5.8设备I/O连线埠和I/O记忆体的访问175
4.6项目驱动开发实例177
4.6.1LED设备驱动开发177
4.6.2矩阵键盘驱动开发183
4.6.3温湿度感测器驱动开发192
4.6.4大气压力感测器应用程式202
4.6.5直流电机驱动开发206
4.6.6继电器开关驱动开发212
习题4216
第5章嵌入式Linux档案编程217
5.1项目目标217
5.2档案编程概述217
5.2.1档案描述符217
5.2.2系统调用217
5.2.3应用程式编程接口218
5.3基于档案描述符的档案I/O操作218
5.3.1档案的创建、打开和关闭218
5.3.2档案的读写操作222
5.3.3档案定位225
5.3.4设备控制接口函式ioctl227
5.4嵌入式Linux串口套用编程228
5.4.1串口概述228
5.4.2串口属性设定230
5.4.3串口的使用240
5.5农业信息採集控制系统GPS通信242
5.5.1GPS概述242
5.5.2GPS通信实现243
习题5249
第6章嵌入式Linux时间编程250
6.1项目目标250
6.2时间类型250
6.3常用时间函式251
6.3.1返回时间函式251
6.3.2时间转换函式251
6.3.3时间格式化函式252
6.3.4获取精确时间函式253
6.4农业信息採集控制系统中时间的套用255
习题6255
第7章进程控制程式设计256
7.1项目目标256
7.2进程控制概述256
7.2.1进程及相关概念256
7.2.2进程控制块和标识符257
7.2.3进程调度258
7.2.4进程同步互斥258
7.2.5Linux下的进程管理常用命令259
7.3Linux进程控制编程261
7.3.1获取进程ID261
7.3.2进程的创建261
7.3.3进程终止264
7.3.4进程等待265
7.3.5exec函式族268
7.4Linux守护进程270
7.4.1守护进程的编写271
7.4.2守护进程实例272
7.5农业信息採集控制系统主程式设计273
7.5.1农业信息採集控制系统主程式流程273
7.5.2农业信息採集控制系统主程式274
习题7277
第8章进程间通信278
8.1项目目标278
8.2进程间通信概述278
8.3管道通信279
8.3.1无名管道279
8.3.2命名管道282
8.4信号通信286
8.4.1信号的定义286
8.4.2信号来源287
8.4.3信号的种类287
8.4.4信号的处理288
8.4.5信号的安装288
8.4.6信号传送293
8.4.7信号通信总结299
8.5信号量通信300
8.5.1信号量概述300
8.5.2信号量的使用300
8.5.3信号量控制函式301
8.5.4信号量套用举例304
8.6共享记忆体309
8.6.1共享记忆体概述309
8.6.2共享记忆体的操作309
8.6.3共享记忆体套用311
8.7讯息伫列315
8.7.1讯息伫列概述315
8.7.2讯息伫列操作315
8.8农业信息採集控制系统中进程间通信的套用321
8.8.1信号通信在农业信息採集系统中的套用321
8.8.2管道在农业信息採集系统中的套用322
习题8324
第9章多执行绪编程325
9.1项目目标325
9.2Linux多执行绪概述325
9.3Linux多执行绪编程326
9.3.1Linux执行绪的基本函式327
9.3.2多执行绪实例分析328
9.3.3修改执行绪的属性330
9.4执行绪的并发访问333
9.4.1互斥锁333
9.4.2信号量执行绪控制335
9.5农业信息採集控制系统多执行绪套用339
习题9341
第10章嵌入式Linux网路编程343
10.1项目目标343
10.2TCP/IP概述343
10.2.1OSI网路模型343
10.2.2TCP/IP概述346
10.3Linux网路编程概述356
10.3.1套接字基础356
10.3.2网路位元组顺序转换358
10.3.3多位元组数据处理360
10.3.4IP位址格式转换362
10.3.5连线埠364
10.4TCPsocket编程365
10.4.1常用函式介绍365
10.4.2TCP网路编程流程373
10.5UDPsocket编程375
10.5.1UDPsocket编程主要函式376
10.5.2UDPsocket编程流程378
10.6农业信息採集控制系统数据上传的实现379
10.6.1基于TCP协定的农业信息採集控制系统数据上传379
10.6.2基于UDP协定的农业信息採集控制系统数据上传386
习题10389
第11章嵌入式GUI程式开发390
11.1项目目标390
11.2Qt编程基础390
11.2.1Qt对象模型390
11.2.2事件系统397
11.2.3一个完整的Qt程式405
11.3Qt/Embedded环境配置407
11.3.1获得源码408
11.3.2编译QtX11环境408
11.3.3安装Qt/Embedded环境409
11.4QtDesigner介绍411
11.5农业信息採集控制系统设计415
11.5.1视窗部件415
11.5.2布局管理418
11.5.3农业信息採集控制系统终端GUI设计420
11.5.4农业信息採集控制系统GUI显示与控制的实现421
习题11426
附录A农业信息採集控制系统源程式428
参考文献441