手册亮点: 01 完全零基础,降低学习门槛 02 深入浅出、通俗易懂 03 思路清晰、语言风趣 04 配套视频+详细文档+QQ群答疑 全方位保证学习质量 05 基础知识+思路引导的教学方式 授之以鱼更授之以渔 06 本教程包括入门篇、Linux系统/编程篇、Linux驱动教程,后续教程编写遵循由简至繁,由浅至深的理念,讲解方式通俗易懂,非常适合零基础小伙伴进行学习。 第一篇?嵌入式Linux入门篇 前言 总领及学习指引 01 框架学习法 02 嵌入式系统学习的框架 03 关于裸机程序和仿真 04 基于迅为开发板的学习步骤
第一部分 嵌入式Linux开发环境构建及基础知识 第一章 安装虚拟机VM软件 第二章 获取并安装Ubuntu操作系统 第三章 Ubuntu系统介绍 3.1 什么是ubuntu?和linux的关系是什么? 3.2 linux的发行版有哪些? 3.3 常见的ubuntu分为哪些?
第四章 Ubuntu启用root用户 4.1 命令行的组成 4.2 为什么要启用root用户? 4.3 启用root用户步骤 4.4 退出root用户
第五章 Ubuntu使用apt-get下载 5.1 使用apt-get 命令之前的检查 5.2 设置下载源 5.3 更新下载源 5.4 安装 vim 软件 5.5 软件的更新 5.6 软件的卸载
第六章 Vim 编辑器的使用 6.1 什么是 vim? 6.2 为什么要学习 vim 编辑器? 6.3 vi 和 vim 的关系是什么呢? 6.4 怎么打开 vi 编辑器呢? 6.5 vim 编辑器有三种模式 6.6 vim 编辑器移动光标 6.7 vim 编辑器支持快速定位 6.8 vim 编辑器的文本的复制和粘贴 6.9 vim 编辑器使用快捷键来复制 6.10 vim 编辑器的删除 6.11 vim 编辑器的撤销 6.12 vim 编辑器的查找 6.13 vim 编辑器的替换 6.14 vim 编辑器的保存 6.15 vim 编辑器文件的对比
第七章 Linux 常用命令第一部分 7.1 ls 命令 7.2 cd 命令 7.3 pwd 命令
第八章 Linux相对路径和绝对路径 8.1 什么是绝对路径? 8.2 什么是相对路径?
第九章 Linux 家目录和根目录概念 9.1 什么是根目录? 9.2 什么是家目录?
第十章 Linux常用命令第二部分 10.1 mkdir 命令 10.2 rmdir 命令 10.3 rm 命令 10.4 touch 命令 10.5 clear 命令 10.6 reset命令 10.7 cp 命令10.8 mv 命令 10.9 tar 命令 10.10 ifconfig 命令 10.11 cat 命令 10.12 reboot 命令 10.13 poweroff 命令 10.14 ipconfig 命令 10.15 ping 命令
第十一章 Linux 帮助手册讲解 11.1 怎么打开帮助手册 11.2 安装依赖 11.3 使用手册查看命令
第十二章 Linux 权限管理 12.1 为什么要管理 linux 权限? 12.2 Ubuntu的文件权限 12.3 chmod 命令
第十三章 Linux连接档概念 13.1 Linux下的连接档种类 13.2 什么是 inode 13.3 什么是硬连接 13.4 使用硬连接的优缺点是什么? 13.5 什么是软连接
第十四章 Linux 目录结构讲解 14.1 linux目录结构 14.2 linux文件层次标准 14.3 linux 根目录下
第十五章 Linux 文件系统概念 15.1 什么是文件系统? 15.2 linux为什么需要文件系统? 15.3 linux 常见文件系统的类型都有哪些? 15.4 ubuntu的文件系统类型是什么呢?
第十六章 Linux 第一个程序 HelloWorld 16.1 什么是gcc ? 16.2 gcc 的基本用法 16.3 流程
第十七章 Linux 环境变量讲解 17.1 什么是环境变量? 17.2 常用变量 PATH 17.3 修改ubunu的环境变量的方法
第十八章 Linux编写第一个自己的命令 18.1 什么是命令? 18.2 定义一个自己的命令
第十九章 Linux 工具之make 工具和 makefile 文件 19.1 什么是 make 工具? 19.2 怎么调用make 工具? 19.3 什么是makefile ?
第二十章 makefile 基本语法(上) 20.1 设置vim首行缩进 20.2 Makefile 基本语法 20.3 Makefile 变量和变量赋值 20.4?自动化变量
第二十一章 makefile基本语法(下) 21.1 wildcard 函数 21.2 notdir 函数 21.3 dir 函数 21.4 patsubst 函数 21.5 foreach 函数
第二十二章 安装VMware Tool 工具 第二部分 嵌入式Windows开发环境构建 第二十三章 安装 SSH 软件 第二十四章 安装 Samba 第二十五章 Source Insight 的安装和使用 第二十六章 MobaXterm的安装教程 第三部分 嵌入式平台入门实操 第二十七章 交叉编译器的安装和使用 第二十八章 借助U盘或TF卡拷贝程序到开发板上 第二十九章 点亮第一个 led灯 29.1 前置知识 29.2 led设备的控制 29.3 使用c语言调用shell命令控制led灯
第二篇 Linux系统编程篇 第一部分 Linux下I/O操作 第三十章 文件IO和标准IO 30.1 文件IO open() 30.2 文件IO close() 30.3 文件IO read() 30.3 文件IO write() 30.4综合练习(一) 30.5文件IO lseek()
第三十一章 目录IO 31.6 目录IO mkdir() 31.7 目录IO opendir()/closedir() 31.8目录IO readdir() 31.9综合练习(二)
第三十二章 库的制作与使用 32.1静态库和动态库
第二部分 进程与进程间通信 第三十三章 进程基础 33.1 进程创建 33.2 exec函数族 33.3 ps和kill命令 33.4 孤儿进程与僵尸进程 33.5 wait()函数 33.6守护进程
第三十四章 进程间通信 34.1 无名管道 34.2 有名管道 34.3 信号发送 34.4 信号接收 34.5 信号处理 34.6共享内存 34.7消息队列 34.8信号量
第三篇 嵌入式 Linux 驱动开发篇
第一部分 Linux 驱动初探 第三十五章 嵌入式开发概述及环境构建 35.1嵌入式 linux 开发介绍 35.2 嵌入式 linux 环境构建 35.2.1 编译内核源码 35.2.2 windows系统 Linux固件烧写 35.2.3 搭建nfs共享目录 35.2.4 设置交叉编译器
第三十六章 Linux驱动初探 36.1 linux 设备驱动开发基本概念 36.2 linux设备驱动分类及特点 36.3 最简单的设备驱动-helloworld
第二部分 Linux内核裁剪与定制 第三十七章 Linux内核模块 37.1 Linux内核模块简介 37.1.1 内核和编译器路径 37.1.2 Makefile 和测试驱动源码以及编译 37.2 ch34x驱动实验
第三十八章 驱动模块编译进内核 38.1 图形化配置内核 38.2 内核中编译驱动
第三部分 Linux 驱动基础 第三十九章 Linux Misc驱动 39.1 misc设备驱动简介 39.2 编写实验程序 39.2.1 编写驱动例程 39.2.2 编译驱动程序 39.2.3 运行测试
第四十章 Linux用户层和内核层 40.1 Linux用户层和内核层交互 40.2 编写驱动程序和应用程序 40.3 编译驱动及运行测试 40.4 应用层和内核层传递数据 40.4.1 应用层从内核层读数据 40.4.2 应用层向内核层写数据
第四十一章 物理地址与虚拟地址
第四十二章?LED驱动实验 42.1 实验需求分析 42.2 硬件分析 42.2.1 硬件原理图分析 42.2.2 芯片手册分析 42.3 编写LED驱动 42.4 编写应用程序 42.5 编译驱动及运行测试
第四十三章 驱动模块传参 43.1 驱动模块传参简介 43.2 驱动模块传普通参数 43.3 驱动模块传数组
第四十四章 注册字符设备号 44.1 字符设备号简介 44.1.1 设备号的组成 44.1.2 设备号的分配 44.2 编写驱动例程 44.3 编译驱动及运行测试 44.3.1 静态注册设备号测试 44.3.2 动态注册设备号测试
第四十五章 注册字符类设备 45.1 注册字符类设备简介 45.2 编写字符设备驱动 45.3 编写应用程序 45.4 开发板实验
第四十六章 自动创建设备节点 46.1 自动创建设备节点简介 46.1.1 创建和删除类函数 46.1.2 创建设备函数 46.2 创建类函数 46.3 创建设备函数
第四十七章 字符设备和杂项设备总结回顾
第四十八章 Platform 设备驱动 48.1 Linux设备驱动分层和分离 48.1.1 设备驱动的分层思想 48.1.2 主机驱动和外设驱动分离思想 48.2 Platform 平台驱动模型 48.2.1 Platform 设备 48.2.2 Platform 驱动 48.2.3 Platform?总线 48.3 实验程序 48.3.1 编写device.c 48.3.2 编写 driver.c 48.3.3 编写probe
第四十九章 平台总线总结回顾
第四部分 Linux驱动进阶 第五十章 Linux设备树 50.1 设备树的由来 50.2 什么是设备树? 50.3 DTS 、DTC 和 DTB 50.4 DTS 设备树语法结构 50.4.1 dtsi 头文件 50.4.2 设备节点信息 50.4.3 设备节点及lable命名 50.4.4 标准属性
第五十一章 添加设备树节点 51.1 查看设备树节点方法 51.2 添加自定义节点 51.3 编译设备树文件 51.4 运行测试 51.4.1 验证结论
第五十二章 设备树常用of函数 52.1 设备树常用of函数 52.1.1 查找节点的of函数 52.1.2 获取属性值的of函数 52.2 of函数实验 52.2.1 查找的节点 52.2.2 获取属性内容 52.2.3 获取reg属性 52.2.4 获取status属性
第五十三章 设备树下的platform驱动 53.1 设备树下的Platform设备 53.2 实验程序编写 53.2.1 Platform驱动程序 53.2.2 获取资源 53.2.3 获取节点属性 53.2.4 映射物理地址
第五十四章 Pinctrl 子系统和 GPIO 子系统 54.1 Pinctrl子系统 54.1.1 配置pinctrl 54.1.2 调用 pinctrl 54.2 GPIO子系统
第五十五章 Pinctrl和GPIO子系统实验 55.1 需求分析 55.2 修改设备树文件 55.3 LED驱动程序编写 55.4 编写测试APP 55.5 运行测试
第五十六章 设备驱动IO控制 56.1 设备驱动IO控制原理 56.2 编写测试-不传递数据 56.3 编写测试-写数据 56.4 编写测试-读数据
第五十七章 Linux中断实验 57.1 Linux中断简介 57.1.1 Linux中断介绍 57.1.2 中断相关函数 57.1.3 中断上文和中断下文 57.1.4 设备树中的中断节点 57.2 实验程序编写 57.2.1 修改设备树文件 57.2.2 编写驱动代码 57.2.3 运行测试 57.2.4 优化方案
第五十八章 中断下文之tasklet 58.1 中断下文之tasklet 58.1.1 tasklet的概念 58.1.2 tasklet参考步骤 58.2 实验程序编写 58.3 运行测试
第五十九章 等待队列 59.1 阻塞和非阻塞IO 59.1.1 阻塞与非阻塞简介 59.1.2 等待队列 59.1.3 等待队列头 59.1.4 等待队列项 59.1.5 添加/删除队列 59.1.6 等待唤醒 59.1.7 等待事件 59.2 编写驱动程序 59.3 编写应用程序 59.4 运行测试 59.5 优化方案
第六十章 中断下文之工作队列 60.1 工作队列理论基础 60.2 工作队列相关API 60.3 工作队列实验 60.3.1 驱动程序编写 60.3.2 测试实验
第六十一章 Linux内核定时器 61.1 Linux 内核时间管理 61.1.1 内核中的时间概念 61.1.2 节拍率 61.1.3 jiffies 61.2 内核定时器简介 61.3 实验测试
第六十二章 定时器按键消抖实验 62.1 定时器按键消抖简介 62.2 定时器按键消抖实验
第六十三章 输入子系统实验 63.1 Input子系统 63.1.1 Input子系统简介 63.1.2 Input驱动程序编写流程 63.1.3 input_event结构体 63.2编写实验程序
第六十四章 Linux I2C驱动 64.1 Linux I2C 驱动框架简介 64.1.1 I2C 总线驱动 64.1.2 I2C设备驱动 64.2 iTOP-RK3568的I2C节点简析 64.3 I2C 设备驱动编写流程 64.3.1 设备信息描述 64.3.2 I2C设备的数据收发和处理
第六十五章 Linux I2C驱动实验 65.1 应用程序与I2C通信 65.2 I2C总线实现client设备 65.2.1 非设备树实现i2c 65.2.2 设备树实现i2c 65.2.3 修改设备树 65.2.4 编写client.c 65.3 I2C总线实现driver驱动 65.4 I2C驱动程序实现I2C通信
第六十六章?电容屏触摸驱动实验 66.1 Linux 下电容触摸屏驱动框架 66.1.1 多点触摸协议详解 66.1.2 多点电容触摸驱动框架 66.2 电容屏触摸驱动实验 66.2.1 硬件原理图 66.2.2 编写触摸驱动
更多内容关注:迅为电子 iTOP-rk3568开发板亮点 01 性能强 iTOP-3568开发板采用瑞芯微RK3568处理器,是一款中高端通用型SOC,22nm工艺制程。内部集成了四核64位Cortex-A55处理器。主频高达2.0Ghz,2GB内存,16GB EMMC,RK809动态调频。 02 双核心架构GPU 集成了双核心架构GPU、ARM?G522EE,支持OpenGL、ES1.1/2.0/3.2、OpenCL 2.0、Vulkan 1.1 、内嵌高性能2D加速硬件。 03 内置独立NPU,算力达0.8T,可用于轻量级人工智能应用。 04 强大的视频编解码,高性能VPU支持4K 60帧视频解码,多路视频源同时解码。H.265/H.264/VP9/VP8视频解码和1080p 100fps H.265/H.264/VP9视频编码。 05 接口丰富,双路千兆以太网、SATA3.0、PCIE 3.0、MIPI、EDP、HDMI、MIPI、CAMERA、4G等接口一应俱全。 06 支持多系统,流畅运行Android11、buildroot+QT、Yocto、Debian系统,新增Ubuntu20系统
|