更新 | 持续开源迅为RK3568驱动指南第十二篇-GPIO子系统

《iTOP-RK3568开发板驱动开发指南》更新,本次更新内容对应的是驱动(第十二期_GPIO子系统-全新升级)视频,后续资料会不断更新,不断完善,帮助用户快速入门,大大提升研发速度。

文档教程更新至第十二篇

第1篇 驱动基础篇

第2篇 字符设备基础

第3篇 并发与竞争

第4篇 高级字符设备进阶

第5篇 中断

第6篇 平台总线

第7篇 设备树

第8篇 设备树插件

第9篇 设备模型

第10篇 热插拔

第11篇 pinctrl子系统

第12篇 GPIO子系统

未完待续,持续更新中...

✦ 第一篇 驱动基础

第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入门实验

128.1 什么是GPIO

128.2 GPIO引脚分布

128.3 GPIO电气属性

128.4 GPIO电气特性

第129章 GPIO控制和操作实验

129.1 使用命令通过sysfs文件系统控制GPIO

129.1.1 内核配置

129.1.2 GPIO编号计算

129.1.3 使用sysfs控制接口控制GPIO

129.2 使用C程序通过sysfs文件系统控制GPIO

129.2.1 控制GPIO输出实验

129.2.2 控制GPIO输入实验

129.3 使用C程序通过sysfs文件系统使用GPIO中断

129.3.1编写应用程序

129.3.2开发板测试

129.4 使用IO命令操作寄存器控制GPIO

129.4.1 IO命令

129.4.2 LED引脚寄存器查找

129.4.3 IO命令点灯测试

129.5 通过mem设备控制GPIO

129.5.1 Linux系统用户态访问内核态方式

129.5.2 /dev/mem设备

129.5.3 /dev/mem设备的使用方法。

129.5.4 mmap函数

129.5.5 LED灯实验

第130章 GPIO的调试方法

130.1 方法一

130.2 方法二

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

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

132.1 函数介绍

132.2 设备树的修改

132.3 驱动程序的编写

132.4运行测试

132.4.1 编译驱动程序

132.4.2 运行测试

第133章 GPIO操作函数实验

133.1 函数介绍

133.2 驱动程序的编写

133.3 运行测试

133.3.1 编译驱动程序

133.3.2 运行测试

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

134.1 函数介绍

134.2 设备树的修改

134.3 驱动程序的编写

134.4运行测试

134.4.1 编译驱动程序

134.4.2 运行测试

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

135.1 函数介绍

135.2 设备树的修改

135.3 驱动程序的编写

135.4运行测试

135.4.1 编译驱动程序

135.4.2 运行测试

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

136.1 设备树的修改

136.2 驱动程序的编写

136.3运行测试

136.3.1 编译驱动程序

136.3.2 运行测试

更多文档可以查看

B站搜索-北京迅为RK3568开发板,

公众Hao关注:北京迅为,

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

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

相关文章

基于FPGA的视频接口之千兆网口(四配置)

简介 相信网络上对于FPGA驱动网口的开发板、博客、论坛数不胜数,为何博主需要重新手敲一遍呢,而不是做一个文抄君呢!因为目前博主感觉网络上描述的多为应用层上的开发,非从底层开始说明,本博主的思虑还是按照老规矩,按照硬件、底层、应用等关系,使用三~四篇文章,来详细…

Flutter - 波浪动画和lottie动画的使用

demo 地址: https://github.com/iotjin/jh_flutter_demo 代码不定时更新,请前往github查看最新代码 波浪动画三方库wave lottie动画 Lottie 是 Airbnb 开发的一款能够为原生应用添加动画效果的开源工具。具有丰富的动画效果和交互功能。 # 波浪动画 https://pub-web…

家政服务小程序,家政维修系统,专业家政软件开发商;家政服务小程序,家政行业软件开发

家政服务小程序,家政维修系统,专业家政软件开发商; 家政服务小程序,家政行业软件开发解决方案,家政软件经验丰富实践,系统高度集成,提供师傅端、用户端、… 家政服务app开发架构有 1、后台管理端…

用什么工具来画UML?

2023年10月9日,周一晚上 目录 我的决定 关于rational rose UML工具有哪些 相关资料 我的决定 我决定用plantUML、draw.io或starUML就可以了 其实没必要在意工具, 重要的是能把图画出来、把图画好画规范, 重要的是知道怎么去画图、把意…

nnunetv2训练报错 ValueError: mmap length is greater than file size

目录 报错解决办法 报错 笔者在使用 nnunetv2 进行 KiTS19肾脏肿瘤分割实验的训练步骤中 使用 2d 和3d_lowres 训练都没有问题 nnUNetv2_train 40 2d 0nnUNetv2_train 40 3d_lowres 0但是使用 3d_cascade_fullres 和 3d_fullres 训练 nnUNetv2_train 40 3d_cascade_fullres …

如何实现前端缓存管理?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

SQL sever中的视图

目录 一、视图概述: 二、视图好处 三、创建视图 法一: 法二: 四、查看视图信息 五、视图插入数据 六、视图修改数据 七、视图删除数据 八、删除视图 法一: 法二: 一、视图概述: 视图是一种常用…

K8S云计算系列-(4)

K8s Dashboard UI 部署实操 Kubernetes实现的最重要的工作是对Docker容器集群统一的管理和调度,通常使用命令行来操作Kubernetes集群及各个节点,命令行操作非常不方便,如果使用UI界面来可视化操作,会更加方便的管理和维护。如下为…

基于统计学库statsmodel实现时间序列预测

文章目录 1.数据探索与清洗2.假设检验:平稳性检验3.差分处理4.绘制ACF与PACF图像,完成模型选择4.建立ARIMA和SARIMA模型5.解读summary6.确定最终的模型 ARIMA模型在统计学上的三大基本假设: 时间序列具有平稳性(stationary&#x…

后厂村路灯在线签名网站,在线签名工具,IPA在线签名

IPA在线签名工具网站,在线实现IPA包签名 案例网站:在线签名 - 后厂村路灯https://sign.vx365.vip/ 用户可以自定义签名网站样式。 用户可以独立部署到自己服务器,使用自己的域名。 用户可以使用自己服务器,加快签名速度&#xf…

clickhouse数据库简介,列式存储

clickhouse数据库简介 1、关于列存储 所说的行式存储和列式存储,指的是底层的存储形式,数据在磁盘上的真实存储,至于暴漏在上层的用户的使用是没有区别的,看到的都是一行一行的表格。 idnameuser_id1闪光10266032轨道物流10265…

Zilliz X Dify.AI ,快速打造知识库 AI 应用

Zilliz 大模型生态矩阵再迎新伙伴!近日,Zilliz 和 Dify.AI 达成合作,Zilliz 旗下的产品 Zilliz Cloud、Milvus 与开源 LLMOps 平台 Dify 社区版进行了深度集成。 01.Zilliz Cloud v.s. Dify Dify 作为开源的 LLMs App 技术栈,在此…

LeetCode-94-二叉树的中序遍历

题目描述&#xff1a; 题目链接&#xff1a;LeetCode-94-二叉树的中序遍历 解题思路&#xff1a;递归&#xff0c;具体可以参考 LeetCode-144-二叉树的前序遍历 代码实现&#xff1a; class Solution {List<Integer> listnew ArrayList<>();public List<Integer…

FPGA project : flash_secter_erase

flash的指定扇区擦除实验。 先发写指令&#xff0c;再进入写锁存周期等待500ns&#xff0c;进入写扇区擦除指令&#xff0c;然后写扇区地址&#xff0c;页地址&#xff0c;字节地址。即可完成扇区擦除。 模块框图&#xff1a; 时序图&#xff1a; 代码&#xff1a; module…

部署zabbix代理服务器、部署zabbix高可用集群

目录 部署zabbix代理服务器 1、环境设置 2、设置 zabbix 的下载源&#xff0c;安装 zabbix-proxy 3、配置Mariadb yum源&#xff0c;并下载marisdb数据库 4.、启动数据库&#xff0c;并初始化数据库 5、登录数据库&#xff0c;创建数据库并指定字符集&#xff0c;并进行…

【配置vscode编写c或c++程序,并在外部控制台输出程序和解决中文乱码问题!!!】

配置vscode编写c或c程序&#xff0c;并在外部控制台输出程序和解决中文乱码问题&#xff01;&#xff01;&#xff01; 1、点击扩展&#xff0c;添加C语言所需的插件&#xff08;点击安装&#xff0c;安装完成后点击设置标志安装另一个版本&#xff0c;注意一定要安装1.8.4版本…

计算机视觉(Computer Vision, CV)是什么?

什么是计算机视觉 近年来&#xff0c;计算机视觉 (Computer Vision&#xff0c;简称CV) 不断普及&#xff0c;已成为人工智能 (AI) 增长最快的领域之一。计算机视觉致力于使计算机能够识别和理解图像和视频中的物体和人。 计算机视觉应用程序使用来自传感设备、人工智能、机器…

hive 知识总结

​编辑 社区公告教程下载分享问答JD 登 录 注册 01 hive 介绍与安装 1 hive介绍与原理分析 Hive是一个基于Hadoop的开源数据仓库工具&#xff0c;用于存储和处理海量结构化数据。它是Facebook 2008年8月开源的一个数据仓库框架&#xff0c;提供了类似于SQL语法的HQL&#xf…

2023年中国渔业研究报告

第一章 行业概况 1.1 定义 渔业&#xff0c;作为全球经济的重要支柱之一&#xff0c;其核心活动包括捕捞、水产养殖、产品加工与销售等。其不仅是食物安全的重要保障&#xff0c;还是许多沿海和内陆地区经济发展的重要动力。 首先&#xff0c;捕捞活动是渔业的基础。通过海洋…

Web后端开发登录校验及JWT令牌,过滤器,拦截器详解

如果用户名正确则成功进入 登录功能 代码 Controller Service Mapper 结果 若登录成功结果如下: 如果登录失败,结果如下 登录校验 为什么需要登录校验 有时再未登录情况下, 我们也可以直接访问部门管理, 员工管理等功能 因此我们需要一个登录校验操作, 只有确认用户登录…