在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例嵌入式开发 → Linux 开发教程

Linux 开发教程

嵌入式开发

下载此实例
  • 开发语言:C/C++
  • 实例大小:27.36M
  • 下载次数:35
  • 浏览次数:113
  • 发布时间:2021-12-29
  • 实例类别:嵌入式开发
  • 发 布 人:pyjpj8
  • 文件格式:.pdf
  • 所需积分:2

实例介绍

【实例简介】Linux 开发教程

【实例截图】

from clipboard

【核心代码】

第一篇 Linux 基础 ·············································································· 1
第 1 章 Linux 操作系统简介 ································································· 2
1.1 Linux 内核 ····················································································· 2
1.1.1 简介 ······················································································· 2
1.1.2 特点 ······················································································· 3
1.1.3 内核版本号 ············································································· 5
1.1.4 组成部分················································································· 6
1.2 Linux 发行版 ·················································································· 9
1.3 嵌入式 Linux ················································································· 11
1.3.1 嵌入式 Linux 的特点 ································································· 11
1.3.2 嵌入式 Linux 的产品形态 ·························································· 12
第 2 章 安装 Linux 操作系统 ······························································· 13
2.1 获得 Linux 环境的三种方式 ····························································· 13
2.2 发行版选择和 ISO 下载 ·································································· 14
2.3 VMware Player 软件 ······································································· 15
2.3.1 下载和安装 ··········································································· 15
2.3.2 设置虚拟化支持 ····································································· 17
2.4 使用现成的虚拟机 ········································································ 18
2.5 创建和配置虚拟机 ········································································ 22
2.5.1 创建虚拟机 ··········································································· 22
2.5.2 虚拟机设置 ··········································································· 26
2.6 安装 Ubuntu ················································································· 28
2.6.1 实体机安装前准备 ·································································· 28
2.6.2 虚拟机安装前准备 ·································································· 30
2.6.3 正式安装 Ubuntu ····································································· 33
2.7 初识 Ubuntu ················································································· 36
2.7.1 Ubuntu 桌面 ··········································································· 36
2.7.2 输入法·················································································· 37
2.7.3 系统设置··············································································· 38
2.7.4 搜索软件和文件 ····································································· 39
2.7.5 打开终端··············································································· 40
2.7.6 安装软件··············································································· 41
MiniARM 核心板
3
M6G2C&A6G2C
第 3 章 开始使用 Linux ······································································ 42
3.1 Linux Shell ·················································································· 42
3.1.1 Shell 是什么? ········································································ 42
3.1.2 Shell 的种类和特点·································································· 43
3.2 Linux 常见命令 ············································································· 44
3.2.1 导航命令··············································································· 44
3.2.2 目录操作命令 ········································································ 47
3.2.3 文件操作命令 ········································································ 51
3.2.4 网络操作命令 ········································································ 61
3.2.5 安装和卸载文件系统 ······························································· 62
3.2.6 使用内核模块和驱动 ······························································· 63
3.2.7 重启和关机 ··········································································· 66
3.2.8 其它命令··············································································· 67
3.3 Shell 文件 ···················································································· 69
3.4 Linux 环境变量 ············································································· 69
3.4.1 环境变量··············································································· 69
3.4.2 修改环境变量 ········································································ 71
第 4 章 Linux 文件系统 ······································································ 72
4.1 Linux 目录结构 ············································································· 72
4.1.1 Linux 目录树 ·········································································· 72
4.1.2 Linux 目录树标准 ···································································· 73
4.2 Linux 的文件 ················································································ 74
4.2.1 Linux 文件结构 ······································································· 74
4.2.2 Linux 文件名称 ······································································· 76
4.2.3 文件类型··············································································· 76
4.3 Linux 文件系统 ············································································· 77
4.3.1 Ext3 文件系统特点 ·································································· 77
4.3.2 Ext4 文件系统特点 ·································································· 78
4.3.3 其它文件系统 ········································································ 80
第 5 章 Vi 编辑器·············································································· 83
5.1 Vi/Vim 编辑器 ·············································································· 83
5.2 Vi 的模式 ···················································································· 83
5.3 Vim 的安装 ·················································································· 84
MiniARM 核心板
4
M6G2C&A6G2C
5.4 启动和关闭 Vi ·············································································· 84
5.5 光标移动····················································································· 85
5.6 文本编辑····················································································· 85
5.6.1 文本输入··············································································· 85
5.6.2 文本处理··············································································· 86
5.7 配置 vi ······················································································· 89
5.8 文件对比····················································································· 91
第 6 章 嵌入式 Linux 开发环境构建 ······················································ 93
6.1 嵌入式 Linux 开发模型 ··································································· 93
6.1.1 交叉编译··············································································· 93
6.1.2 交叉编译器 ··········································································· 94
6.2 安装交叉编译器 ··········································································· 94
6.2.1 解压工具链压缩包 ·································································· 94
6.2.2 设置环境变量 ········································································ 96
6.3 SSH 服务器 ················································································· 98
6.3.1 SSH 能做什么? ····································································· 98
6.3.2 安装 SSH 服务器 ···································································· 99
6.3.3 测试 SSH 服务 ······································································· 99
6.3.4 用 Putty 测试 ········································································· 101
6.3.5 用 SSH Secure Shell 测试 ·························································· 104
6.4 NFS 服务器 ················································································ 107
6.4.1 NFS 能做什么? ···································································· 107
6.4.2 安装 NFS 软件包 ··································································· 107
6.4.3 添加 NFS 共享目录 ································································ 107
6.4.4 启动 NFS 服务 ······································································ 108
6.4.5 测试 NFS 服务器 ··································································· 108
6.5 TFTP 服务器 ··············································································· 109
6.5.1 TFTP 能做什么? ··································································· 109
6.5.2 安装配置 tftp 软件 ·································································· 109
6.5.3 配置 tftp 服务器 ····································································· 110
6.5.4 启动 tftp 服务 ········································································ 110
6.5.5 测试 tftp 服务器 ····································································· 110
第二篇 EPC-6G2C-L 工业控制主板 ······················································ 111
MiniARM 核心板
5
M6G2C&A6G2C
第 7 章 EPC-6G2C-L 工业控制主板介绍 ················································112
7.1 开发套件简介 ············································································· 112
7.2 硬件资源···················································································· 113
7.3 软件资源···················································································· 114
7.4 开发所需配件 ············································································· 114
7.5 AP-283Demo 扩展板 ····································································· 115
7.5.1 硬件特性·············································································· 115
7.5.2 外设接口布局 ······································································· 116
第 8 章 EPC-6G2C-L 入门实操 ····························································117
8.1 开机和登录 ················································································ 117
8.1.1 启动方式设置 ······································································· 117
8.1.2 供电连接·············································································· 118
8.1.3 调试串口连接 ······································································· 119
8.1.4 Windows 环境串口登录 ··························································· 122
8.1.5 Linux 环境串口登录································································ 124
8.2 关机和重启 ················································································ 129
8.3 查看系统信息 ············································································· 129
8.3.1 查看系统内核版本 ································································· 129
8.3.2 查看内存使用情况 ································································· 130
8.3.3 查看磁盘使用情况 ································································· 130
8.4 修改只读文件系统 ······································································· 131
8.5 设置开机自动启动 ······································································· 131
8.6 加载驱动模块 ············································································· 131
8.6.1 在 shell 终端加载和卸载模块 ···················································· 131
8.6.2 在脚本文件加载和使用驱动模块 ··············································· 132
8.7 网络设置···················································································· 132
8.8 通过 SSH 登录系统 ······································································ 135
8.9 TF 卡使用 ·················································································· 136
8.10 U 盘使用 ···················································································· 136
8.11 USB 鼠标的使用 ·········································································· 138
8.12 USB 键盘的使用 ·········································································· 138
8.13 USB Hub 的使用 ·········································································· 138
8.14 USB Device 使用 ·········································································· 138
MiniARM 核心板
6
M6G2C&A6G2C
8.15 LED 使用 ··················································································· 139
8.15.1 LED 的操作接口 ···································································· 140
8.15.2 触发条件设置 ······································································· 140
8.16 蜂鸣器使用 ················································································ 141
8.17 进阶操作···················································································· 141
8.17.1 挂载 NFS 目录 ······································································ 141
8.17.2 使用 NFS 根文件系统 ····························································· 141
8.17.3 从网络启动系统 ···································································· 145
8.17.4 内存文件系统 ······································································· 146
第 9 章 系统固件烧写 ······································································ 147
9.1 NAND Flash 存储器分区 ································································ 147
9.2 TF 卡烧写方案 ············································································ 147
9.2.1 TF 卡烧写用的固件 ································································ 147
9.2.2 制作 TF 启动卡 ····································································· 148
9.2.3 固件烧写步骤 ······································································· 149
9.3 USB 烧写方案 ············································································· 150
9.3.1 执行 USB 烧写 ······································································ 151
9.4 使用网络更新内核或文件系统 ························································ 153
9.4.1 网络更新所需固件 ································································· 153
9.4.2 升级步骤·············································································· 153
9.4.3 故障排除·············································································· 156
9.5 在线更新固件 ············································································· 157
9.5.1 在线更新 Uboot ····································································· 157
9.5.2 在线更新 dtb 和内核 ······························································· 157
9.6 更换 LOGO 图片 ·········································································· 158
第三篇 Linux 应用编程 ···································································· 159
第 10 章 Linux C 编程环境 ································································ 160
10.1 GCC ························································································· 160
10.1.1 GCC 简介 ············································································· 160
10.1.2 gcc 工具软件 ········································································· 160
10.1.3 gcc 基本使用 ········································································· 162
10.1.4 gcc 编译控制选项 ··································································· 168
10.1.5 创建静态库和共享库 ······························································ 172
MiniARM 核心板
7
M6G2C&A6G2C
10.1.6 arm-linux-gcc ········································································ 173
10.2 GNU make ·················································································· 173
10.2.1 make 和 GNU make ································································· 173
10.2.2 给 hello.c 编写一个 Makefile ····················································· 174
10.2.3 Makefile 的规则 ····································································· 175
10.2.4 make 命令 ············································································ 183
10.3 GDB ························································································· 184
10.3.1 GDB 介绍 ············································································ 184
10.3.2 GDB 基本命令 ······································································ 184
10.3.3 GDB 调试范例 ······································································ 185
10.3.4 GDB 远程调试 ······································································ 188
10.3.5 GDB 图形前端 DDD ······························································· 190
10.4 Eclipse IDE for C/C ···································································· 193
10.4.1 Eclipse 简介 ·········································································· 193
10.4.2 安装 Eclipse IDE for C/C ······················································· 193
10.4.3 启动 Eclipse ·········································································· 193
10.4.4 创建 C 工程 ·········································································· 195
10.4.5 本地编译和调试 ···································································· 199
10.4.6 交叉编译和远程调试 ······························································ 201
10.4.7 Eclipse 中的 GCC 设置 ···························································· 208
10.4.8 导入已有的工程文件 ······························································ 210
10.5 Windows 下开发 Linux 应用程序······················································ 211
10.5.1 安装交叉编译器 ···································································· 211
10.5.2 安装 JDK ············································································· 217
10.5.3 安装 Eclipse IDE for C/C Developers ········································ 221
10.5.4 启动 Eclipse ·········································································· 222
10.5.5 创建 C 工程 ·········································································· 223
10.5.6 交叉编译工程 ······································································· 228
10.5.7 建立远程 SSH 连接 ································································ 228
10.5.8 远程调试·············································································· 234
第 11 章 Linux 文件 I/O ···································································· 240
11.1 Linux 的文件 I/O 概述 ··································································· 240
11.2 文件描述符 ················································································ 240
MiniARM 核心板
8
M6G2C&A6G2C
11.3 常用文件 I/O 操作和函数 ······························································· 241
11.3.1 open ···················································································· 241
11.3.2 close ··················································································· 244
11.3.3 read ···················································································· 244
11.3.4 write ··················································································· 245
11.3.5 fsync ··················································································· 246
11.3.6 文件操作范例 ······································································· 246
11.3.7 lseek ··················································································· 248
11.3.8 ioctl ···················································································· 252
第 12 章 进程与进程间通信 ······························································ 253
12.1 进程环境···················································································· 253
12.1.1 程序与进程 ·········································································· 253
12.1.2 进程环境·············································································· 255
12.2 进程基本操作 ············································································· 258
12.2.1 创建进程·············································································· 258
12.2.2 终止进程·············································································· 259
12.2.3 exec 族函数 ·········································································· 260
12.2.4 wait()函数 ············································································ 262
12.2.5 守护进程·············································································· 264
12.3 信号 ·························································································· 266
12.3.1 常用的信号 ·········································································· 266
12.3.2 信号函数·············································································· 267
12.4 进程间通信 ················································································ 270
12.4.1 管道 ···················································································· 270
12.4.2 共享内存·············································································· 276
12.4.3 信号量················································································· 280
第 13 章 Linux 多线程编程 ································································ 287
13.1 Linux 多线程概述 ········································································· 287
13.1.1 什么是线程 ·········································································· 287
13.1.2 线程与进程的关系 ································································· 287
13.1.3 为什么要使用多线程 ······························································ 287
13.2 POSIX Threads 概述 ······································································ 288
13.3 线程管理···················································································· 288
MiniARM 核心板
9
M6G2C&A6G2C
13.3.1 线程 ID ················································································ 288
13.3.2 创建与终止 ·········································································· 289
13.3.3 连接与分离 ·········································································· 291
13.3.4 线程属性·············································································· 294
13.4 线程安全···················································································· 297
13.5 互斥量······················································································· 298
13.5.1 临界区················································································· 298
13.5.2 什么是互斥量 ······································································· 299
13.5.3 创建与销毁 ·········································································· 299
13.5.4 加锁与解锁 ·········································································· 300
13.5.5 死锁和避免 ·········································································· 303
13.6 条件变量···················································································· 305
13.6.1 为什么需要条件变量 ······························································ 305
13.6.2 创建与销毁 ·········································································· 306
13.6.3 等待与通知 ·········································································· 306
第 14 章 嵌入式 GUI 编程 ································································· 310
14.1 Qt 和 Qt/Embedded ······································································· 310
14.1.1 Qt 介绍 ················································································ 310
14.1.2 Qt/Embedded 介绍 ·································································· 310
14.2 Qt/Embedded 交叉编译环境的搭建 ··················································· 311
14.2.1 环境介绍·············································································· 311
14.2.2 安装 tslib1.4 ·········································································· 311
14.2.3 交叉编译 Qt 4.8.6 ··································································· 314
14.3 Qt Sdk 搭建 ················································································ 316
14.3.1 Qt SDK 简介 ········································································· 316
14.3.2 Qt SDK 安装 ········································································· 316
14.4 qmake ························································································ 319
14.4.1 .pro 文件例程 ········································································ 319
14.4.2 Pro 文件常见配置 ··································································· 320
14.4.3 Helloworld 程序 ····································································· 321
14.5 Qt Creator ··················································································· 322
14.5.1 Qt Creator 配置 ······································································ 322
14.5.2 Qt Creator 使用范例 ································································ 325
MiniARM 核心板
10
M6G2C&A6G2C
14.6 在嵌入式环境运行 Qt 程序 ····························································· 329
14.6.1 将程序编译成嵌入式版本 ························································ 329
14.6.2 在 EPC-6G2C-L 上运行 Qt 程序 ················································· 329
14.7 Qt 帮助文档 ················································································ 330
14.8 Qt 编程实战 ················································································ 331
14.8.1 按钮 ···················································································· 331
14.8.2 标签和文本框 ······································································· 332
14.8.3 布局管理器 ·········································································· 333
14.8.4 信号与槽·············································································· 335
14.8.5 主窗口(MainWindow) ·························································· 338
14.8.6 菜单栏、工具栏和状态栏 ························································ 340
14.8.7 事件 ···················································································· 343
14.8.8 经典游戏贪食蛇实例 ······························································ 346
第 15 章 特殊硬件接口编程 ······························································ 364
15.1 点亮一个 LED 灯 ········································································· 364
15.1.1 LED 操作接口 ······································································· 364
15.1.2 在命令行中操作 LED ······························································ 366
15.1.3 在 C 程序中操作 LED ····························································· 366
15.2 GPIO 硬件编程 ············································································ 368
15.2.1 GPIO 操作接口 ······································································ 369
15.2.2 在命令行中操作 GPIO ····························································· 370
15.2.3 在 C 程序中操作 GPIO ···························································· 371
15.3 用户态 SPI 编程 ··········································································· 374
15.3.1 SPI 编程接口 ········································································ 374
15.3.2 编程范例·············································································· 377
15.4 用户态 I 2 C 编程 ··········································································· 382
15.4.1 I 2 C 编程接口 ········································································· 382
15.4.2 编程范例·············································································· 385
15.5 用户态 ADC 编程 ········································································· 390
1.1.1 操作接口·············································································· 390
1.1.2 编程范例·············································································· 391
第 16 章 Linux 串口编程 ··································································· 393
16.1 串口基本操作 ············································································· 393
MiniARM 核心板
11
M6G2C&A6G2C
16.1.1 打开串口·············································································· 393
16.1.2 关闭串口·············································································· 393
16.1.3 发送数据·············································································· 393
16.1.4 读取数据·············································································· 394
16.1.5 串口范例 1 ··········································································· 394
16.2 串口属性设置 ············································································· 397
16.2.1 终端属性描述 ······································································· 397
16.2.2 获取和设置终端属性 ······························································ 399
16.2.3 设置波特率 ·········································································· 400
16.2.4 设置数据位 ·········································································· 401
16.2.5 设置奇偶校验 ······································································· 402
16.2.6 设置停止位 ·········································································· 403
16.2.7 其它设置·············································································· 404
16.2.8 串口属性设置函数 ································································· 404
16.2.9 串口范例 2 ··········································································· 405
第 17 章 C 语言网络编程入门 ···························································· 408
17.1 网络基本概念 ············································································· 408
17.1.1 OSI 模型 ·············································································· 408
17.1.2 TCP/IP 协议基本概念 ······························································ 410
17.1.3 字节序················································································· 413
17.1.4 客户机/服务器模型 ································································· 414
17.2 编程接口 BSD Socket ···································································· 414
17.2.1 Socket 简介 ··········································································· 414
17.2.2 基础数据结构和函数 ······························································ 415
17.2.3 BSD Socket 常用操作 ······························································ 418
17.3 实例:TCP/UDP ECHO 服务器 ·························································· 424
17.3.1 面向流的 Socket ····································································· 425
17.3.2 面向数据报的 Socket······························································· 431
17.4 Socket CAN 编程 ········································································· 435
17.4.1 初始化 CAN 网络接口 ··························································· 435
17.4.2 Socket CAN 编程 ··································································· 435
17.4.3 示例程序·············································································· 439
第 18 章 Shell 编程初步 ···································································· 445
MiniARM 核心板
12
M6G2C&A6G2C
18.1 基础概念···················································································· 445
18.1.1 Sha-Bang ·············································································· 445
18.1.2 字符串与引号 ······································································· 447
18.1.3 特殊字符·············································································· 448
18.2 必要高级概念 ············································································· 449
18.2.1 内部命令和外部命令 ······························································ 449
18.2.2 I/O 重定向与管道 ··································································· 450
18.2.3 常量、变量与环境变量 ··························································· 452
18.2.4 操作符与表达式 ···································································· 457
18.3 脚本编程···················································································· 458
18.3.1 命令、函数与脚本返回值 ························································ 458
18.3.2 函数 ···················································································· 458
18.3.3 test ····················································································· 459
18.3.4 流程控制·············································································· 461

实例下载地址

Linux 开发教程

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警