嵌入式Linux开发教程 上PDF电子书下载
- 电子书积分:16 积分如何计算积分?
- 作 者:周立功主编;ZLGLinux开发团队编著
- 出 版 社:北京:北京航空航天大学出版社
- 出版年份:2016
- ISBN:9787512419735
- 页数:528 页
第一篇 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
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《高含硫气藏开发腐蚀控制技术与实践》唐永帆,张强 2018
- 《物联网与嵌入式技术及其在农业上的应用》马德新 2019
- 《主题公园开发与管理》梁增贤编著 2019
- 《中南高校档案文化资源开发综合研究》涂上飙 2019
- 《普通高等职业教育计算机系列规划教材 Android Studio移动应用开发基础》(中国)吴绍根 2019
- 《Cocos Creator微信小游戏开发实战》王绍明编著 2020
- 《CATIA 软件建模与CAA二次开发》胡毕富,吴约旺 2018
- 《Cocos2d-x游戏开发》刘克男编著 2019
- 《叶用枸杞新品种宁杞9号选育及开发利用》王娅丽主编 2018
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019