教程更新 | 持续开源 RK3568驱动指南-驱动基础进阶篇

《iTOP-RK3568开发板驱动开发指南》手册文档更新,手册内容对应视频教程,后续资料会不断更新,不断完善,帮助用户快速入门,大大提升研发速度。

✦ 第一篇 驱动基础

第1章 前言

第2章 你好!内核源码

第3章 helloworld 驱动实验

第4章 内核模块实验

第5章 驱动模块传参实验

第6章 内核模块符号导出实验

✦ 第二篇 字符设备基础

第7章 menuconfig图形化配置实验

第8章 驱动模块编译进内核实验

第9章 申请字符设备号实验

第10章 注册字符设备实验

第11章 创建设备节点实验

第12章 字符设备驱动框架实验

第13章 杂项设备驱动实验

第14章 内核空间与用户空间数据交互实验

第15章 文件私有数据实验

第16章 一个驱动兼容不同设备实验

第17章 Linux错误处理实验

第18章 点亮LED灯实验

✦ 第三篇 并发与竞争

第19章 并发与竞争实验

第20章 原子操作实验

第21章 自旋锁实验

第22章 自旋锁死锁实验

第23章 信号量实验

第24章 互斥锁实验

✦ 第四篇 高级字符设备进阶

第25章 IO模型引入实验

第26章 阻塞IO实验

第27章 非阻塞IO实验

第28章 IO多路复用实验

第29章 信号驱动IO实验

第30章 定时器实验   

第31章 秒字符设备驱动实验 

第32章 Linux内核打印实验  

第33章 llseek定位设备驱动实验

第34章 IOCTL驱动传参实验  

第35章 IOCTL地址传参实验

第36章 封装驱动API接口实验

第37章 优化驱动稳定性和效率实验  

第38章 驱动调试方法实验

✦ 第五篇 中断

第39章 中断实验

第40章 中断申请流程

第41章 中断下文tasklet实验 

第42章 软中断实验

第43章 特殊的软中断tasklet分析实验

第44章 共享工作队列实验

第45章 自定义工作队列实验

第46章 延迟工作实验 

第47章 工作队列传参实验

第48章 并发管理工作队列实验

第49章 中断线程化实验

✦第六篇 平台总线

第50章 平台总线模型介绍

第51章 注册platform设备实验

第52章 注册platform驱动实验

第53章 probe函数编写实验

第54章 点亮LED灯实验(平台总线)

✦ 第七篇 设备树

第55章 初识设备树

第56章 设备树基本语法

第57章 实例分析:中断

第58章 实例分析:时钟

第59章 实例分析:CPU

第60章 实例分析:GPIO

第61章 实例分析:pinctrl

第62章 dtb文件格式讲解

第63章 dtb展开成device_node实验

第64章 device_node转换成platform_device实验

第65章 设备树下platform_device和platform_driver匹配实验

第66章 of操作函数实验:获取设备树节点

第67章 of操作函数实验:获取属性

第68章 ranges属性实验

第69章 of操作函数实验:获取中断资源

第70章 参考文档:设备树bindings

✦ 第八篇 设备树插件

第71章 设备树插件介绍

第72章 设备树插件语法和编译实验

第73章 设备树插件使用实验

第74章 虚拟文件系统ConfigFS介绍

第75章 ConfigFS的核心数据结构

第76章 注册configfs子系统实验

第77章 注册group容器实验

第78章 用户空间创建item实验

第79章 完善drop和release函数实验

第80章 注册attribute实验

第81章 实现多级目录实验

第82章 移植设备树插件驱动实验

第83章 设备树插件驱动分析实验

第84章设备树插件参考资料介绍

第九篇 设备模型

第85章设备模型基本框架-kobject和kset

第86章 创建kobject实验

第87章 创建kset实验

第88章 为什么要引入设备模型

第89章 进一步探究设备模型

第90章 虚拟文件系统sysfs目录层次分析实验

第91章 什么是引用计数器 

第92章 引用计数器实验

第93章  kobject释放实例分析实验

第95章 创建属性文件并实现读写功能实验1

第96章 优化属性文件读写函数实验

第97章 创建属性文件并实现读写功能实验2

第98章 创建多个属性文件的简便方法

第99章 注册一个自己的总线实验

第100章 在总线目录下创建属性文件实验 

第101章 总线注册流程理论分析实验

第102章  platform总线注册流程实例分析实验 

第103章 在总线下注册设备实验

第104章 设备注册流程分析实验 

第105章  platform总线设备注册流程实例分析实验 

第106章 为什么注册总线之前要先注册设备实例分析实验 

第107章 在自己的总线下注册驱动实验

第108章 驱动注册流程分析实验

第109章  probe函数执行流程分析实验

第110章 加载驱动和加载设备先后顺序分析实验 

第111章 platform总线注册驱动流程实例分析实验

第十篇 热插拔

第112章 热插拔简介

第113章 内核是如何发送事件到用户空间

第114章 内核发送事件到用户空间的方法

第115章 完善kset_uevent_ops结构体实验

第116章 netlink监听广播信息实验

第117章 uevent_helper实验

第118章 使用udev挂载U盘和T卡实验

第119章使用mdev挂载U盘和T卡实验

✦ 第十一篇pinctrl子系统

第120章 pinctrl子系统的引入

第121章 pinctrl probe函数讲解

第122章pinctrl 子系统函数操作集

第123章dt_node_to_map函数分析

第124章pinctrl_bind_pins函数

第125章 add_setting函数分析

第126章 通过pinctrl状态设置引脚复用实验

第127章 猜想验证

✦ 第十二篇 GPIO子系统

第128章 GPIO入门实验

第129章 GPIO控制和操作实验

第130章 GPIO的调试方法

第131章 GPIO子系统API函数的引入

第132章 获取单个gpio描述实验

第133章 GPIO操作函数实验

第134章 三级节点操作函数实验

第135章 GPIO子系统与pinctrl子系统相结合实验

第136章 实战:实现动态切换引脚复用功能

✦ 驱动基础-进阶篇

进阶1 编译进内核的驱动系统是如何运行的?

进阶2 让驱动快一点被加载实验

2.1 实验程序的编写

2.2 运行测试

进阶3 驱动代码使用Makefile的宏

3.1 内核模块的编译选项的变量

3.2 实验程序的编写

3.3 运行测试

3.3.1 编译驱动程序

3.3.2 运行测试

进阶4 内核是如何运行ko文件的_insmod

4.1 insmod源码分析

4.2 实验程序的编写

4.2.1 驱动程序编写

4.2.2 编写测试 APP

4.3 运行测试

4.3.1 编译驱动程序

4.3.2 编译应用程序

4.3.2 运行测试

进阶5 自定义实现insmod命令实验

5.1 实验程序的编写

5.1.1 驱动程序编写

5.1.2 编写测试 APP

5.2运行测试

5.2.1 编译驱动程序

5.2.2 编译应用程序

5.2.3运行测试

进阶6 内核运行ko文件实验——系统调用

6.1 什么是系统调用

6.2 系统调用的流程

进阶7 向系统中添加一个系统调用

7.1 内核添加自定义服务

7.2 添加系统调用号

7.3 系统调用测试

进阶8 内核运行ko文件总结

8.1 内核运行ko流程分析

8.2 内核加载ko文件总结

B站搜索:北京迅为电子, 在线观看

嵌入式学习之Linux驱动(基于RK3568)第一期
https://b23.tv/ixoKF02

嵌入式学习之Linux驱动(基于RK3568)第二期
https://b23.tv/jNK4o2I

嵌入式学习之Linux驱动 第三期_并发与竞争_全新升级
https://www.bilibili.com/video/BV1He4y1b7nd/?spm_id_from=333.999.0.0

嵌入式学习之Linux驱动 基于RK3568 第四期
https://b23.tv/7I0oopS

嵌入式学习之Linux驱动(基于RK3568) 第五期_中断_全新升级
https://b23.tv/2EREBzn

【北京迅为】嵌入式学习之Linux驱动(第六期_平台总线_全新升级)
https://www.bilibili.com/video/BV1bP4y1v7Gc/?spm_id_from=333.999.0.0

嵌入式学习之Linux驱动(第七期_设备树_全新升级)
https://www.bilibili.com/video/BV1sM411475h/?spm_id_from=333.999.0.0

嵌入式学习之Linux驱动(第八期_设备树插件_全新升级)
https://b23.tv/CKCSgwZ

嵌入式学习之Linux驱动(第九期_设备模型_全新升级)
https://b23.tv/rsg6sOK

嵌入式学习之Linux驱动(第十期_热插拔_全新升级)_基于RK3568
https://b23.tv/8pLEJLb

嵌入式学习之Linux驱动(第十一期)
https://b23.tv/WAbmYt7
嵌入式学习之Linux驱动(第十二期_GPIO子系统)
https://b23.tv/mpdITF3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PXIE板卡,4口QSFP+,PCIE GEN3 X8,XILINX FPGA XCVU3P设计

PXIE板卡,4口QSFP,PCIE GEN3 X8,基于XILINX FPGA XCVU3P设计。 1:电路拓扑 ● 支持利用 EEPROM 存储数据; ● 电源时序控制和总功耗监控; 2:电路调试 3:测试 PCIE gen3 x8&#…

【音视频|ALSA】基于alsa-lib开发ALSA应用层程序--附带源码

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

Linux下等待队列、定时器、中断综合应用——按键控制LED

本文通过按键控制LED的亮灭,按键每按一次,LED的状态就发生一次变化。 等待队列是为了在按键有动作发生时再读取按键值,而不是一直读取按键的值,使得CPU的占用率很高。 定时器在本实验中引入是为了按键消抖,在键值稳定了…

手写一个PrattParser基本运算解析器1: 编译原理概述

点击查看 基于Swift的PrattParser项目 编译原理概述 编译原理是我们每一个程序猿必须要了解的技能, 编译原理实际上并没有啥高深的技术, 我们如果在做业务开发, 也很少会用到编译开发的知识, 但是编译原理又是我们必备的基础知识之一. 所以我们需要对编译原理的内容有一个大概的…

【PXIE301-211】基于PXIE总线的16路并行LVDS数据采集、4路低速、2路隔离RS422数据处理平台

板卡概述 PXIE301-211A是一款基于PXIE总线架构的16路高速LVDS、4路低速LVDS采集、2路隔离RS422数据处理平台,该平台板卡采用Xilinx的高性能Kintex 7系列FPGA XC7K325T作为实时处理器,实现各个接口之间的互联。板载1组64位的DDR3 SDRAM用作数据缓存。板卡…

[Hive] explode

在 Hive 中,explode 函数用于将数组(Array)或者Map类型的列拆分成多行, 每个元素或键值对为一行。这允许我们在查询中对数组或 Map 进行扁平化操作。 下面是使用 explode 函数的示例: 假设我们有一个包含数组字段的表…

pycharm操作git

pycharm操作git 之前用命令做的所有操作,使用pychrm点点就可以完成 克隆代码 上方工具栏Git ⇢ \dashrightarrow ⇢ Clone ⇢ \dashrightarrow ⇢ 填写地址(http、ssh) 提交到暂存区,提交到版本库,推送到远程 直接…

HTTP和HTTPS

目录 HTTP协议 1.HTTP协议 2.HTTP请求 URL 方法 GET请求 post请求 header报头 请求正文(body) 3.HTTP响应 结构 常见的状态码 4.form表单构造HTTP请求 5.通过ajax构造HTTP请求 6.使用工具postman ​编辑 HTTPS 1.对称加密 2.非对称加密…

填充颜色游戏

无语死了这题。 题目描述 小明最近迷上下面一款游戏。游戏开始时, 系统将随机生成一个 N N 的 正方形棋盘, 棋盘的每个格子都由六种颜色中的一种绘制。在每个步骤中, 玩家选择一种颜色, 并将与左上角连接的所有网格更改为该特…

jenkins 安装与使用、用户权限划分

jenkins 安装与使用 安装插件: 开启该插件功能 验证用户管理 创建web01~02 使用web01登录 用户权限划分 安装 Role-Based Strategy 插件后,系统管理 中多了如图下所示的一个功能,用户权限的划分就是靠他来做的 创建角色 重新访问 创建项目…

Zabbix“专家坐诊”第207期问答汇总

问题一 Q:不小心把host表删除了,怎么处理?现在使用的zabbix 4.0.3的server,agent是4.2.1,能不能不动agent的情况下升级server版本,重新部署? A:数据库有备份话恢复即可,…

SSTI模板注入(flask) 学习总结

文章目录 Flask-jinja2 SSTI 一般利用姿势SSTI 中常用的魔术方法内建函数 利用 SSTI 读取文件Python 2Python 3 利用 SSTI 执行命令寻找内建函数 eval 执行命令寻找 os 模块执行命令寻找 popen 函数执行命令寻找 importlib 类执行命令寻找 linecache 函数执行命令寻找 subproce…

windows中elasticsearch7中添加用户名密码验证

1.找到elsatic的bin目录输入cmd 2.生成ca证书 输入 elasticsearch-certutil ca 在es7根目录生成ca证书,输入密码时直接回车即可,否则后面会报错 Please enter the desired output file [elastic-stack-ca.p12]: #这里直接回车即可 Enter password for…

JAVA学习日记1——JAVA简介及第一个java程序

简单记忆 JAVA SE :标准版,核心基础 JAVA EE:企业版,进阶 JDK:Java Development Kit,Java开发工具包,包含JRE JRE:Java Runtime Environment,Java运行时环境&#xff…

手撕 视觉slam14讲 ch7 / pose_estimation_3d2d.cpp (2)

上一篇文章中: 手撕ch7/pose_estimation_3d2d(1),我们调用了epnp的方法进行位姿估计,这里我们使用非线性优化的方法来求解位姿,使用g2o进行BA优化 首先介绍g2o:可参考:g2o详细介绍 1.构建g2o图…

加权平均、EMD、小波等方法去噪效果对比

加权平均、EMD、小波等方法去噪效果对比 代码 整体代码如下 %% clear all; clc;load(data_filter120Hz.mat); %可自己生成随机噪声 fs1000;%采样频率是1000Hz %% %生成正弦波信号 tlinspace(0, length(data)/fs-1/fs, length(data)); y1 15*sin(2*pi* 2.8 *t);%生成频率为2.…

Android之使用QBadgeView给TabLayout顶部栏设置数量角标,数值可更新

TabLayout搭配ViewPager、Fragement使用可看另一篇文章&#xff1a; Android中TabLayoutViewPagerFragment实现顶部导航栏 本文主要描述给TabLayout的某一栏添加角标&#xff0c;数值可更新&#xff1a; 一、效果 二、TabLayout使用 1、xml文件中 <com.google.android.m…

通讯协议学习之路:QSPI协议理论

通讯协议之路主要分为两部分&#xff0c;第一部分从理论上面讲解各类协议的通讯原理以及通讯格式&#xff0c;第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN&#xff1b;视频会发布在bilibili(UID:399951374) 一、…

【Django 01】环境搭配与项目配置

1. 介绍 https://github.com/Joe-2002/sweettalk-django4.2#readme Django 是一个使用 Python 编写的开源 Web 应用程序框架&#xff0c;它提供了一套用于快速开发安全、 可扩展和高效的 Web 应用程序的工具和功能。Django 基于 MVC&#xff08;Model-View-Controller&#xf…

Windows11家庭版没有本地组策略编辑器解决

1. 新建一个文本文件将下面代码粘到里面&#xff0c;保存后修改后缀为.cmd或者.bat echo off pushd "%~dp0"dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt dir /b C:\Windows\servicing\Packa…