书籍详情
《嵌入式Linux开发教程(上册)》[44M]百度网盘|亲测有效|pdf下载
  • 嵌入式Linux开发教程(上册)

  • 出版社:北京航空航天大学出版社
  • 作者:周立功,ZLG Linus开发团队 编
  • 出版时间:2016-03-01
  • 热度:5382
  • 上架时间:2025-01-04 08:18:29
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

内容简介

  本书是面向嵌入式Linux学习和产品开发的入门教程,分3篇,共18章,围绕嵌入式Linux产品开发的应用编程展开,内容涵盖Linux操作系统介绍、安装和基本使用、嵌入式Linux开发平台以及

  嵌入式Linux的应用编程.全面介绍了嵌入式Linux产品应用开发的方方面面,包括应用基础、文件和I/O操作、进程和线程、外围硬件接口编程、串口编程、网络编程、Qt编程和Shell编程.

  本书由浅入深、结构合理、图文并茂,可操作性强,读者可跟着一步步进行操作和学习,非常适合

  嵌入式Linux开发初级工程师及准备往嵌入式Linux方向发展的电子工程师和单片机工程师使用,也可作为高校非计算机专业高年级学生学习嵌入式Linux的参考教材.

目录

第一篇 Linux基础

第1章 Linux操作系统简介…………………………………………………………… 3

1.1 Linux内核……………………………………………………………………… 3

1.1.1 简 介……………………………………………………………………… 3

1.1.2 特 点……………………………………………………………………… 5

1.1.3 内核版本号………………………………………………………………… 7

1.1.4 组成部分…………………………………………………………………… 7

1.2 Linux发行版…………………………………………………………………… 11

1.3 嵌入式Linux ………………………………………………………………… 14

1.3.1 嵌入式Linux的特点…………………………………………………… 14

1.3.2 嵌入式Linux的产品形态……………………………………………… 14

第2章 安装Linux操作系统………………………………………………………… 16

2.1 获得Linux环境的三种方式………………………………………………… 16

2.2 发行版选择和ISO下载……………………………………………………… 17

2.3 VMwarePlayer软件………………………………………………………… 18

2.3.1 下载和安装………………………………………………………………… 18

2.3.2 设置虚拟化支持…………………………………………………………… 20

2.4 使用现成的虚拟机……………………………………………………………… 21

2.5 创建和配置虚拟机……………………………………………………………… 25

2.5.1 创建虚拟机………………………………………………………………… 25

2.5.2 虚拟机设置………………………………………………………………… 28

2.6 安装Ubuntu …………………………………………………………………… 30

2.6.1 实体机安装前准备………………………………………………………… 30

2.6.2 虚拟机安装前准备………………………………………………………… 32

2.6.3 正式安装Ubuntu ………………………………………………………… 34

2.7 初识Ubuntu …………………………………………………………………… 38

2.7.1 Ubuntu桌面……………………………………………………………… 38

2.7.2 输入法……………………………………………………………………… 39

2.7.3 系统设置…………………………………………………………………… 39

2.7.4 搜索软件和文件…………………………………………………………… 40

2.7.5 打开终端…………………………………………………………………… 41

2.7.6 安装软件…………………………………………………………………… 42

第3章 开始使用Linux ……………………………………………………………… 44

3.1 LinuxShell …………………………………………………………………… 44

3.1.1 Shell是什么……………………………………………………………… 44

3.1.2 Shell的种类和特点……………………………………………………… 45

3.2 Linux常见命令………………………………………………………………… 46

3.2.1 导航命令…………………………………………………………………… 47

3.2.2 目录操作命令……………………………………………………………… 49

3.2.3 文件操作命令……………………………………………………………… 53

3.2.4 网络操作命令……………………………………………………………… 63

3.2.5 安装和卸载文件系统……………………………………………………… 64

3.2.6 使用内核模块和驱动……………………………………………………… 66

3.2.7 重启和关机………………………………………………………………… 69

3.2.8 其他命令…………………………………………………………………… 69

3.3 Shell文件……………………………………………………………………… 72

3.4 Linux环境变量………………………………………………………………… 72

3.4.1 环境变量…………………………………………………………………… 72

3.4.2 修改环境变量……………………………………………………………… 73

第4章 Linux文件系统……………………………………………………………… 75

4.1 Linux目录结构………………………………………………………………… 75

4.1.1 Linux目录树……………………………………………………………… 75

4.1.2 Linux目录树标准………………………………………………………… 76

4.2 Linux的文件…………………………………………………………………… 77

4.2.1 Linux文件结构…………………………………………………………… 77

4.2.2 Linux文件名称…………………………………………………………… 78

4.2.3 文件类型…………………………………………………………………… 79

4.3 Linux文件系统………………………………………………………………… 80

4.3.1 Ext3文件系统特点……………………………………………………… 80

4.3.2 Ext4文件系统特点……………………………………………………… 81

4.3.3 其他文件系统……………………………………………………………… 83

第5章 Vi编辑器……………………………………………………………………… 86

5.1 Vi/Vim 编辑器………………………………………………………………… 86

5.2 Vi的模式……………………………………………………………………… 86

5.3 Vim 的安装…………………………………………………………………… 87

5.4 启动和关闭Vi ………………………………………………………………… 87

5.5 光标移动………………………………………………………………………… 88

5.6 文本编辑………………………………………………………………………… 89

5.6.1 文本输入…………………………………………………………………… 89

5.6.2 文本处理…………………………………………………………………… 90

5.7 配置Vi ………………………………………………………………………… 93

5.8 文件对比………………………………………………………………………… 95

第6章 嵌入式Linux开发环境构建………………………………………………… 96

6.1 嵌入式Linux开发模型……………………………………………………… 96

6.1.1 交叉编译…………………………………………………………………… 96

6.1.2 交叉编译器………………………………………………………………… 97

6.2 安装交叉编译器………………………………………………………………… 97

6.2.1 解压工具链压缩包………………………………………………………… 98

6.2.2 设置环境变量……………………………………………………………… 99

6.3 SSH 服务器…………………………………………………………………… 102

6.3.1 SSH 能做什么…………………………………………………………… 102

6.3.2 安装SSH 服务器………………………………………………………… 103

6.3.3 测试SSH 服务…………………………………………………………… 103

6.3.4 用Putty测试…………………………………………………………… 105

6.3.5 用SSHSecureShell测试……………………………………………… 107

6.4 NFS服务器…………………………………………………………………… 110

6.4.1 NFS能做什么…………………………………………………………… 110

6.4.2 安装NFS软件包………………………………………………………… 110

6.4.3 添加NFS共享目录……………………………………………………… 110

6.4.4 启动NFS服务…………………………………………………………… 112

6.4.5 测试NFS服务器………………………………………………………… 112

6.5 TFTP服务器………………………………………………………………… 113

6.5.1 TFTP能做什么………………………………………………………… 113

6.5.2 安装配置TFTP软件…………………………………………………… 113

6.5.3 配置TFTP服务器……………………………………………………… 114

6.5.4 启动TFTP服务………………………………………………………… 114

6.5.5 测试TFTP服务器……………………………………………………… 114

第二篇 EasyARM i.MX283A 开发平台

第7章 EasyARM i.MX283A 开发套件介绍……………………………………… 119

7.1 开发套件简介………………………………………………………………… 119

7.2 硬件资源……………………………………………………………………… 120

7.3 软件资源……………………………………………………………………… 121

7.4 开发所需配件………………………………………………………………… 122

7.5 产品组装……………………………………………………………………… 122

7.6 AP 283Demo扩展板……………………………………………………… 124

7.6.1 硬件特性………………………………………………………………… 124

7.6.2 外设接口布局…………………………………………………………… 125

第8章 EasyARM i.MX283A 入门实操…………………………………………… 126

8.1 开机和登录…………………………………………………………………… 126

8.1.1 启动方式设置…………………………………………………………… 126

8.1.2 供电连接………………………………………………………………… 127

8.1.3 串口硬件连接…………………………………………………………… 127

8.1.4 Windows环境串口登录………………………………………………… 130

8.1.5 Linux环境串口登录…………………………………………………… 133

8.2 关机和重启…………………………………………………………………… 138

8.3 查看系统信息………………………………………………………………… 138

8.3.1 查看系统内核版本……………………………………………………… 138

8.3.2 查看内存使用情况……………………………………………………… 139

8.3.3 查看磁盘使用情况……………………………………………………… 139

8.3.4 查看CPU 等的信息…………………………………………………… 139

8.4 设置开机自动启动…………………………………………………………… 140

8.5 加载驱动模块………………………………………………………………… 141

8.5.1 在Shell终端上加载和使用驱动模块………………………………… 141

8.5.2 在脚本文件中加载和使用驱动模块…………………………………… 141

8.6 网络设置……………………………………………………………………… 142

8.7 通过SSH 登录系统…………………………………………………………… 145

8.8 TF卡的使用………………………………………………………………… 146

8.9 U 盘的使用…………………………………………………………………… 147

8.10 USBDevice的使用………………………………………………………… 148

8.10.1 把TF卡作为虚拟U 盘的储存空间………………………………… 148

8.10.2 使用普通文件作为虚拟U 盘的存储空间…………………………… 149

8.11 LED使用…………………………………………………………………… 150

8.11.1 LED的操作接口……………………………………………………… 150

8.11.2 触发条件设置…………………………………………………………… 150

8.12 蜂鸣器的使用………………………………………………………………… 152

8.13 LCD背光控制……………………………………………………………… 152

8.14 触摸屏的校准………………………………………………………………… 152

8.15 GPIO操作…………………………………………………………………… 153

8.16 进阶操作……………………………………………………………………… 154

8.16.1 挂载NFS目录………………………………………………………… 154

8.16.2 使用NFS根文件系统………………………………………………… 154

8.16.3 使用TFTP启动内核………………………………………………… 158

8.16.4 内存文件系统…………………………………………………………… 159

第9章 系统固件的烧写……………………………………………………………… 160

9.1 NandFlash存储器分区……………………………………………………… 160

9.2 烧写流程图…………………………………………………………………… 160

9.3 格式化NandFlash…………………………………………………………… 161

9.3.1 通过USBBoot引导格式化NandFlash ……………………………… 161

9.3.2 通过SDBoot方式格式化NandFlash ……………………………… 164

9.4 TF卡烧写方案……………………………………………………………… 165

9.4.1 TF卡烧写用的固件…………………………………………………… 165

9.4.2 制作TF启动卡………………………………………………………… 166

9.4.3 固件烧写步骤…………………………………………………………… 167

9.5 USB烧写方案………………………………………………………………… 168

9.6 使用网络升级内核或文件系统……………………………………………… 172

9.6.1 网络升级用的固件……………………………………………………… 172

9.6.2 升级步骤………………………………………………………………… 172

9.6.3 故障排除………………………………………………………………… 174

第三篇 Linux应用编程

第10章 LinuxC编程环境………………………………………………………… 179

10.1 GCC ………………………………………………………………………… 180

10.1.1 GCC简介……………………………………………………………… 180

10.1.2 GCC工具软件………………………………………………………… 180

10.1.3 GCC基本使用方法…………………………………………………… 181

10.1.4 GCC编译控制选项…………………………………………………… 187

10.1.5 创建静态库和共享库…………………………………………………… 191

10.1.6 arm linux gcc ……………………………………………………… 192

10.2 GNU make ………………………………………………………………… 192

10.2.1 make和GNU make…………………………………………………… 192

10.2.2 给hello.c编写一个Makefile ………………………………………… 193

10.2.3 Makefile的规则………………………………………………………… 194

10.2.4 make命令……………………………………………………………… 202

10.3 GDB ………………………………………………………………………… 203

10.3.1 GDB介绍……………………………………………………………… 203

10.3.2 GDB基本命令………………………………………………………… 203

10.3.3 GDB调试范例………………………………………………………… 205

10.3.4 GDB远程调试………………………………………………………… 208

10.3.5 GDB图形前端DDD …………………………………………………… 211

10.4 用于C/C++语言的EclipseIDE ………………………………………… 213

10.4.1 Eclipse简介…………………………………………………………… 213

10.4.2 安装用于C/C++语言的EclipseIDE ……………………………… 214

10.4.3 启动Eclipse …………………………………………………………… 214

10.4.4 创建C工程…………………………………………………………… 215

10.4.5 本地编译和调试………………………………………………………… 220

10.4.6 交叉编译和远程调试…………………………………………………… 221

10.4.7 Eclipse中的GCC设置……………………………………………… 228

10.4.8 导入已有的工程文件…………………………………………………… 231

10.5 Windows下开发Linux应用程序………………………………………… 232

10.5.1 安装交叉编译器………………………………………………………… 232

10.5.2 安装JDK ……………………………………………………………… 238

10.5.3 安装用于C/C++Developers的EclipseIDE ……………………… 241

10.5.4 启动Eclipse …………………………………………………………… 242

10.5.5 创建C工程…………………………………………………………… 244

10.5.6 交叉编译工程…………………………………………………………… 247

10.5.7 建立远程SSH 连接…………………………………………………… 248

10.5.8 远程调试………………………………………………………………… 254

第11章 Linux文件I/O …………………………………………………………… 259

第12章 进程与进程间通信………………………………………………………… 276

第13章 Linux多线程编程………………………………………………………… 312

第14章 嵌入式GUI编程…………………………………………………………… 337

第15章 特殊硬件接口编程………………………………………………………… 393

第16章 Linux串口编程…………………………………………………………… 458

第17章 C语言网络编程入门……………………………………………………… 473

第18章 Shell编程初步……………………………………………………………… 503

参考文献 ……………………………………………………………………………… 528

前言/序言

  时光荏苒白驹过隙.如果时光能够倒流回到10年前对于那时的嵌入式工程师掌握1~2种单片机能用汇编或者C编写应用程序就是合格的嵌入式工程师;倒回到5年前能掌握1~2种ARM 处理器能用C编写应用程序同样也是合格的嵌入式工程师.而如今如果仅仅具备上述技能恐怕很难成为企业所需要的嵌入式技术核心人才这绝非危言耸听笔者就曾见过有的企业招聘硬件工程师要求能写Linux驱动尽管这只是少数个案但至少反映了一种趋势.时代的进步迫使我们不得不学习和掌握新的技能以跟上时代的脚步适应企业的发展.掌握一种嵌入式操作系统几乎成为嵌入式工程师的标配技能.在新时期如何转型也成为摆在很多嵌入式工程师面前的一道难题.嵌入式系统多彩纷呈一直角逐不断近些年嵌入式Linux势头强劲成为事实上的热门.

  市面上已经有很多Linux或者嵌入式Linux的书籍可谓汗牛充栋但能够让初学者快速掌握嵌入式Linux的“葵花宝典”不多.也正因为此很多人觉得嵌入式Linux很难也让不少人望而却步.本书正是为破解这样的困局而写从浩瀚的Linux知识海洋中精挑细选将必要的、最有用的知识点呈现出来.本书不求让读者能够精通嵌入式Linux只求能帮助读者快速进入嵌入式Linux的大门.所谓“师傅领进门修行在个人”;本书也不奢望能让读者学到嵌入式Linux的全部只希望能成为嵌入式工程师往嵌入式Linux道路上转型的领路人.Linux海洋浩瀚无垠嵌入式Linux也是广袤无边在嵌入式Linux的世界里学习只有起点没有终点.

  本书由多位具有多年嵌入式Linux工作经验的资深工程师编写与工程应用紧密结合具有以下特色:

  取舍有度针对性强.从始至终都围绕嵌入式Linux开发而展开抛开无关内容.Linux包罗万象进行Linux相关开发如果没有很强的针对性和目的性很容易在Linux浩淼的海洋中迷失如何从中获取最有用的知识并用于学习和产品开发这需要有人指引.本书就可以提供这样的指引.例如在介绍Linux命令部分仅仅针对性地介绍了嵌入式Linux开发的常用命令而不是像一般书籍那样介绍全部的Linux操作命令.

  紧贴实际实用性强.本书所介绍的全部知识点以及工具都能在实际应用中发挥有效作用有不少内容是笔者多年开发经验的积累总结.例如本书介绍Linux的命令并非遵循常规介绍方式对命令的各种用法进行逐一介绍而是根据实际应用介绍最实用的方法.

  图文并茂可读性强.本书插图分两类一类用于辅助内容理解另一类用于直观显示实际操作和结果.配备的插图与内容相得益彰极大增强了可读感和可读性.

  本书分3篇共18章各章节内容安排如下:

  第一篇Linux基础包括第1~6章是进行嵌入式Linux开发的基础介绍了Linux操作系统、安装和使用还介绍了Vi编辑器以及嵌入式Linux开发环境的搭建.

  第二篇EasyARM i.MX283A开发平台包括第7~9章介绍本书实际的操作平台包括平台介绍、基本操作和系统固件烧写等内容.第三篇Linux应用编程包括第10~18章是本书的重点全方位阐述了嵌入式Linux应用编程内容涵盖LinuxC编程、文件I/O、Linux进程和线程、外围硬件编程、串口编程、网络编程、Qt编程以及Shell编程等方面.参与本书规划和编写的人员还有陈锡炳、张波、彭国文、华启延、张展威和沈桂廷等在此一并表示感谢.

  Linux是一个诞生、发展和壮大于网络的操作系统网络上有无穷无尽的参考资料本书在编写过程中也不可避免地参考或者引用了其中的内容由于无法追溯到原作者只能在此表示感谢.

  由于编者水平有限书中难免存在不足和错误还望读者来信进行批评指正.

  周立功

  2015年11月21日



相关推荐