当前位置:首页 > 工业技术
嵌入式Linux开发教程  上
嵌入式Linux开发教程  上

嵌入式Linux开发教程 上PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:周立功主编;ZLGLinux开发团队编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2016
  • ISBN:9787512419735
  • 页数:528 页
图书介绍:本教程是面向嵌入式Linux学习和产品开发的入门教程,分上下两册。本书为上册,分3篇共18章,围绕嵌入式Linux产品开发之应用编程展开,内容涵盖Linux操作系统简介、安装和基本使用、嵌入式Linux开发平台以及嵌入式Linux应用编程。本书非常适合嵌入式Linux开发初级工程师、准备往嵌入式Linux方向发展的电子工程师和单片机工程师,也可作为高校非计算机专业高年级学生学习嵌入式Linux的参考教材。
《嵌入式Linux开发教程 上》目录

第一篇 Linux基础 3

第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 VMware Player软件 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 Linux Shell 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 用SSH Secure Shell测试 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开发平台 119

第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 USB Device的使用 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 Nand Flash存储器分区 160

9.2 烧写流程图 160

9.3 格式化Nand Flash 161

9.3.1 通过USB Boot引导格式化Nand Flash 161

9.3.2 通过SD Boot方式格式化Nand Flash 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应用编程 179

第10章 Linux C编程环境 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++语言的Eclipse IDE 213

10.4.1 Eclipse简介 213

10.4.2 安装用于C/C++语言的Eclipse IDE 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的Eclipse IDE 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

11.1 Linux文件I/O概述 259

11.2 文件描述符 260

11.3 常用文件I/O操作和函数 260

11.3.1 open 261

11.3.2 close 263

11.3.3 read 264

11.3.4 write 265

11.3.5 fsync 266

11.3.6 文件操作范例 266

11.3.7 lseek 268

11.3.8 ioctl 272

11.4 I/O操作和蜂鸣器 273

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

12.1 进程环境 276

12.1.1 程序与进程 276

12.1.2 进程环境 278

12.2 进程基本操作 281

12.2.1 创建进程 281

12.2.2 终止进程 283

12.2.3 exec族函数 284

12.2.4 wait()函数 286

12.2.5 守护进程 288

12.3 信号 290

12.3.1 常用的信号 290

12.3.2 信号函数 291

12.4 进程间通信 295

12.4.1 管道 295

12.4.2 共享内存 300

12.4.3 信号量 305

第13章 Linux多线程编程 312

13.1 Linux多线程概述 312

13.1.1 什么是线程 312

13.1.2 线程与进程的关系 312

13.1.3 为什么要使用多线程 312

13.2 POSIX Threads概述 313

13.3 线程管理 314

13.3.1 线程ID 314

13.3.2 创建与终止 314

13.3.3 连接与分离 317

13.3.4 线程属性 320

13.4 线程安全 324

13.5 互斥量 325

13.5.1 临界区 325

13.5.2 什么是互斥量 325

13.5.3 创建与销毁 325

13.5.4 加锁与解锁 327

13.5.5 死锁和避免 329

13.6 条件变量 331

13.6.1 为什么需要条件变量 331

13.6.2 创建与销毁 332

13.6.3 等待与通知 333

第14章 嵌入式GUI编程 337

14.1 Qt和Qt/Embedded 337

14.1.1 Qt介绍 337

14.1.2 Qt/Embedded介绍 338

14.2 Qt/Embedded交叉编译环境的搭建 338

14.2.1 环境介绍 338

14.2.2 安装tslib1.4 339

14.2.3 编译qt4.7.3-arm 342

14.3 Qt SDK的搭建 344

14.3.1 Qt SDK简介 344

14.3.2 Qt SDK的安装 344

14.4 qmake 346

14.4.1 .pro文件例程 347

14.4.2 .pro文件常见配置 348

14.4.3 Helloworld程序 348

14.5 Qt Creator 350

14.5.1 Qt Creator的配置 350

14.5.2 Qt Creator使用范例 353

14.6 在嵌入式环境运行Qt程序 356

14.6.1 将程序编译成嵌入式版本 356

14.6.2 在目标板上运行程序 357

14.7 Qt帮助文档 357

14.8 Qt编程实战 358

14.8.1 按钮 358

14.8.2 标签和文本框 360

14.8.3 布局管理器 361

14.8.4 信号与槽 364

14.8.5 主窗口(MainWindow) 367

14.8.6 菜单栏、工具栏和状态栏 369

14.8.7 事件 372

14.8.8 经典游戏贪食蛇实例 375

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

15.1 点亮一个LED灯 393

15.1.1 LED的操作接口 393

15.1.2 LED的控制 394

15.1.3 在C程序中操作LED 394

15.2 GPIO硬件编程 396

15.2.1 GPIO和sysfs操作接口 396

15.2.2 GPIO的基本操作 398

15.2.3 在C程序中操作GPIO 399

15.2.4 EasyARM-i.MX283A GPIO应用编程 399

15.3 用户态SPI编程 403

15.3.1 SPI编程接口 403

15.3.2 编程范例 407

15.4 用户态I2C编程 412

15.4.1 I2C编程接口 412

15.4.2 编程范例 415

15.5 按键应用层编程 420

15.5.1 按键驱动加载和卸载 421

15.5.2 在图形界面中使用按键驱动 421

15.5.3 按键编程 422

15.5.4 编程范例 425

15.6 用户态ADC编程 427

15.6.1 ADC驱动模块的加载 427

15.6.2 操作接口 428

15.6.3 C程序操作示例 429

15.7 温度检测和报警系统 433

15.7.1 EEPROM控制模块 434

15.7.2 环境温度读取模块 437

15.7.3 数码管显示模块 438

15.7.4 按键处理模块 442

15.7.5 控制处理模块 446

15.7.6 主程序的实现 455

15.7.7 测试方法 456

第16章 Linux串口编程 458

16.1 串口的基本操作 458

16.1.1 打开串口 458

16.1.2 关闭串口 459

16.1.3 发送数据 459

16.1.4 读取数据 459

16.1.5 串口范例1 460

16.2 串口属性的设置 461

16.2.1 终端属性描述 461

16.2.2 获取和设置终端属性 464

16.2.3 设置波特率 465

16.2.4 设置数据位 466

16.2.5 设置奇偶校验 467

16.2.6 设置停止位 468

16.2.7 其他设置 469

16.2.8 串口属性设置函数 470

16.2.9 串口范例2 470

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

17.1 网络基本概念 473

17.1.1 OSI模型 473

17.1.2 TCP/IP协议基本概念 476

17.1.3 字节序 479

17.1.4 客户机/服务器模型 480

17.2 编程接口BSD Socket 480

17.2.1 Socket简介 480

17.2.2 基础数据结构和函数 481

17.2.3 BSD Socket常用操作 484

17.3 实例:TCP/UDP ECHO服务器 491

17.3.1 面向流的Socket 492

17.3.2 面向数据报的Socket 498

第18章 Shell编程初步 503

18.1 基础概念 503

18.1.1 Sha-Bang 504

18.1.2 字符串与引号 505

18.1.3 特殊字符 506

18.2 必要高级概念 508

18.2.1 内部命令和外部命令 508

18.2.2 I/O重定向与管道 508

18.2.3 常量、变量与环境变量 511

18.2.4 操作符与表达式 515

18.3 脚本编程 516

18.3.1 命令、函数与脚本返回值 516

18.3.2 函数 516

18.3.3 test 517

18.3.4 流程控制 519

参考文献 528

返回顶部