嵌入式Linux开发技术基础

-
【作 者】主编 伍德雁
【I S B N 】978-7-5170-5514-3
【责任编辑】李炎
【适用读者群】本专通用
【出版时间】2017-06-01
【开 本】16开
【装帧信息】平装(光膜)
【版 次】第1版第1次印刷
【页 数】196
【千字数】303
【印 张】12.25
【定 价】¥28
【丛 书】物联网工程专业系列教材
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书是嵌入式Linux开发的基础教程,介绍了嵌入式Linux的概念和相关的开发技术。在编写上注重基础性和可操作性,以应用为驱动,以案例为依托,将理论知识与技能培养相结合。全书共分为15章,包括嵌入式系统和嵌入式Linux的概念、搭建开发环境、开发基础流程、使用自定义函数、使用多文件、使用make管理项目、文件读写、网络通信、驱动程序、控制嵌入式系统的硬件、QT基础等内容。
本书由从事嵌入式Linux开发教学工作多年的教师编写,在组织内容时对广度和深度都做了充分的考虑,尽量做到对嵌入式Linux开发既有一个比较全面的介绍,又没有太大的难度。行文风格近似课堂教学,对概念的讲解深入浅出,同时具备较强的可操作性,可用作高等院校物联网专业以及相关专业的教材,也可作为嵌入式Linux开发初学者的入门教材。
本书是嵌入式Linux开发的基础教程,介绍了嵌入式Linux的概念和相关的开发技术。在编写上注重基础性和可操作性,以应用为驱动,以案例为依托,将理论知识与技能培养相结合。
本书由从事嵌入式Linux开发教学工作多年的教师编写,在组织内容时对广度和深度都做了充分的考虑,尽量做到对嵌入式Linux开发既有一个比较全面的介绍,又没有太大的难度。
本书行文风格近似课堂教学,对概念的讲解深入浅出,同时具备较强的可操作性,可用作高等院校物联网专业以及相关专业的教材,也可作为嵌入式Linux开发初学者的入门教材。
近年来,随着计算机技术的发展、电子制造技术的微型化以及控制理论的完善,嵌入式技术得到了快速发展,并在各行各业得到了广泛的应用。越来越多的学校开设了与嵌入式系统相关的课程,有些学校甚至开设了嵌入式技术专业。
编者在高等院校从事计算机类课程的教学工作十几年,对嵌入式Linux开发课程的教学工作也深有体会。众所周知,IT行业是一个知识更新换代非常快的行业,编者在教学过程中也需要不断地学习新知识与新技术。在教学和自学的过程中,编者逐渐地发现,“螺旋式学习模型”是掌握一门课程较有效的学习方法之一。
所谓的螺旋式学习模型,是编者借用了软件工程开发模型中知识自定义的学习模型,是指由浅入深,逐渐迭代的学习方法。首先学习课程最基础的知识,对课程有了初步的概念后,再适当增加难度和广度,向前迈进一步,然后如此多次反复,最后对课程的掌握就能达到一个很好的高度。所以,编者每自学一个新的知识,一般都会选择从最基础的学起,再逐渐深入。
每一种学习方法都需要有相应的教材作为配套。所以,编者就想结合自己多年的教学经验和心得,按照“螺旋式学习模型”的思想,编写一本嵌入式Linux开发的入门教材。这就是本书编写的初衷。
作为入门教材,本书具有以下特点:
1.简单。本书在组织内容时对广度和深度都做了充分的考虑,尽量做到让初学者对嵌入式Linux开发既有一个比较全面的了解,又没有太大的难度。因此,选取了一些相对比较简单的必要的知识,舍弃了烧写系统、进程控制等一些初级阶段较少用或者不用的知识,并在讲解驱动程序时使用了虚拟的硬件,使得初学者既能够理解驱动程序的相关知识,又避开了较难的底层机器指令的操作。
2.行文风格类似课堂讲课,通俗易懂。每一个行业都有大量概念和术语,这些概念和术语对于一个资深从业者而言耳熟能详,但对于初学者来说可能会显得不是那么友好。针对这个问题,本书以类似课堂讲课的风格展开,以通俗易懂的语言解释相关的概念和术语,尽量避免以概念解释概念,以术语解释术语。遇到一些相对比较抽象的概念和术语,书中辅以生活中的现象和例子作类比,以帮助读者理解。
3.具有较强的可操作性。嵌入式Linux开发是一门实践性很强的课程,边学习边操作才会有好的效果,对于加强记忆、加深理解和保持兴趣都有很大的帮助。鉴于此,除了纯概念章节外,每章都提供了经典的例子以供读者实践。同时,考虑到部分读者为自学者,除讲解例子本身外,还讲解了必要的操作过程,文字不容易理解的地方还辅以直观的插图,以避免自学者在编辑、编译、运行中的某个环节被卡住而无计可施。
4.章节结构统一。除第1章是纯概念的章节外,其余章节基本上按照“总体概念→例子→程序解读”的模式展开,在例子前后穿插必要的操作步骤,在程序解读过程中穿插解释一些必要的术语和概念。
本书精心编写了每一个例子,确保每个例子都能正确无误地运行。并且,从头到尾都在向读者灌输一种好的编程习惯和思想。
为了方便读者上机实验,在没有涉及到嵌入式系统的专用硬件时,本书的例子直接以PC Linux为实验平台;只有在涉及到嵌入式系统的专用硬件时,才把程序移植到嵌入式Linux上运行。
本书是编者按照自定义的“螺旋式学习模型”,针对初学者和自学者的一次尝试,适合高等院校物联网相关专业、计算机相关专业的在校学生,以及其他自学者、初学者学习使用。
本书在编写过程中参考了作者手头和图书馆能借到的所有相关教材,以及网上大量的相关资料。在此衷心感谢这些教材的编者和出版社、网上资料的创作者、转载者以及相关的网站。
由于编者水平有限,加之时间仓促,书中难免存在不妥和错误之处,敬请广大读者批评指正。
第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
- Python语言程序设计教程 [郭其标 房宜汕]
- Python程序设计 [李国燕 王新强 刘佳 等编著]
- Python程序设计项目化教程(活页式) [主编 卢凤伟]
- Java编程基础案例式教程 [主编 陈艳华 唐春兰]
- Python语言同步案例习题精解 [主编 肖朝晖]
- Unity应用开发与实战(微课版) [主 编 程永恒]
- PHP程序设计项目化教程 [主 编 杜海颖]
- 简单易懂的Python入门教程 [[日]大泽文孝 著]
- Python数据分析之道——Thinking in Pandas [[美]汉娜·斯捷潘内克(Hannah S]
- 深入浅出OpenHarmony——架构、内核、驱动及应用开发全栈 [李传钊 著]
- MySQL数据库项目化教程(第二版) [主编 郑小蓉]
- python青少年趣味编程 [千锋教育 编著]
- 程序员5天修炼 [施游 邹月平 曾哲军 编著]
- Python程序设计应用教程 [王敏 李光正]
- Java面向对象程序设计(微课版) [主编 谢先伟 王海洋]
- Java面向对象程序设计 [主编 张立敏 邹海涛]
- 工业机器人编程及应用 [主编 向艳芳 胡月霞]
- C语言程序设计(微课版) [主编 夏启寿]
- C语言程序设计实践教程 [夏启寿]
- 单片机应用技术项目教程(C语言版)(第三版) [主编 郭志勇]
- Linux服务器构建与运维管理从基础到实战(基于CentOS 8实现) [阮晓龙 冯顺磊 董凯伦 于冠军]
- Python语言程序设计 [张双狮]
- 火球-UML大战需求分析(第二版) [张传波 著]
- HTML5+CSS3前端开发项目式教程(微课版) [主编 谭卫 徐文义]
- Python 程序设计(微课版) [杨智勇 廖丹]
- 数据结构——C语言(微课版) [主编 梁海英]
- UI界面设计与制作教程 [主 编 黎 娅 任劲松]
- UML系统建模及系统分析与设计(第二版) [王欣 张毅 编著]
- Android高级程序设计 [主编 周雯 舒松]
- C程序设计简明教程 [黄能耿 黄致远 编著]