当前位置: 首页 > news >正文

更新 | 持续开源迅为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关注:北京迅为,

相关文章:

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

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

centos7安装erlang23.3.4.11及rabbitmq3.9.16版本

rpm包有系统版本要求,el是Red Hat Enterprise Linux(EL)的缩写。 EL7是Red Hat 7.x,Centos 7.x EL8是Red Hat 8.x, Centos 8.x 所以我们在安装erlang及rabbitmq时需要选择与自己的服务器相对应的rpm包 # rabbitmq的rpm安装包 https://github.com/rabbi…...

VMware和Debian下载

文章目录 ⭐️写在前面的话⭐️一、VMware二、Debain三、建立虚拟机🚀 先看后赞,养成习惯!🚀🚀 先看后赞,养成习惯!🚀 ⭐️写在前面的话⭐️ CSDN主页:程序员好冰 目前在…...

mysql面试题48:MySQL中 Innodb的事务与日志的实现方式

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官: Innodb的事务与日志的实现方式 以下是InnoDB事务和日志的实现方式的详细说明: 事务日志(Transaction Log): InnoDB使用事务日志来保证事务的…...

数据结构 优先级队列(堆)

数据结构 优先级队列(堆) 文章目录 数据结构 优先级队列(堆)1. 优先级队列1.1 概念 2. 优先级队列的模拟实现2.1 堆的概念2.2 堆的存储方式2.3 堆的创建2.3.1 堆向下调整2.3.2 堆的创建2.3.3 建堆的时间复杂度 2.4 堆的插入与删除2.4.1 堆的插入2.4.2 堆的删除 2.5 用堆模拟实现…...

如何在edge浏览器中给PDF添加文字批注

我用的edge浏览器是目前最新版的(一般自动更新到最新版) 最近,我喜欢用edge浏览器查看PDF,节省电脑资源,快捷且方便。 但edge对PDF的标注种类较少,主要是划线和涂色,文字批注功能尚未出现在工具…...

集成学习的小九九

集成学习(Ensemble Learning)是一种机器学习的方法,通过结合多个基本模型的预测结果来进行决策或预测。集成学习的目标是通过组合多个模型的优势,并弥补单个模型的不足,从而提高整体性能。 集成学习的主要策略 在集成…...

深入理解Scrapy

Scrapy是什么 An open source and collaborative framework for extracting the data you need from websites. In a fast, simple, yet extensible way. Scrapy是适用于Python的一个快速、简单、功能强大的web爬虫框架,通常用于抓取web站点并从页面中提取结构化的数…...

想做WMS仓库管理系统,找了好久才找到云表

公司内部仓库管理原方式均基于人工电子表格管理方式来实现收发存管理,没有流程化管理,无法保证数据的准确性和及时性,同时现场操作和数据核对会出现不同步的情况,无法提高仓库的运作效率,因此,我们基于云表…...

公司销售个人号如何管理?

微信管理系统可以帮助企业解决哪些问题呢? 一、解决聊天记录监管问题 1.聊天记录的保存,让公司的管理者可以随时查看公司任意销售与客户的聊天记录,不用一个一个员工逐一去看,方便管理; 2.敏感词监控,管理者…...

COLE HERSEE 48408 工业4.0、制造业X和元宇宙

COLE HERSEE 48408 工业4.0、制造业X和元宇宙 需要数据来释放工业4.0的全部潜力——价值链中的所有公司都可以访问大量数据。一个新的互联数据生态系统旨在提供解决方案:制造业x。 在德国联邦经济事务和气候行动部以及BDI、VDMA和ZVEI贸易协会的密切合作下,实施制…...

【Vue基础-数字大屏】加载动漫效果

一、需求描述 当网页正在加载而处于空白页面状态时,可以在该页面上显示加载动画提示。 二、步骤代码 1、全局下载npm install -g json-server npm install -g json-server 2、在src目录下新建文件夹mock,新建文件data.json存放模拟数据 {"one&…...

CSS 样式简写

在CSS中有许多简写的样式,它们被广泛使用。简写最好按照如下顺序进行书写 font font: font-style font-weight font-size/line-height font-familyfont-style italic//斜体 normal//正常字体(默认)font-weight 一般填写数字 400 normal(默认值) 700 bold(默认值)f…...

SQL Server创建数据库

简单创建写法 默认初始大小为5MB,增长速度为2MB create database DBTEST自定义 用户创建的数据库都被存放在sys.database中,每个数据库在表中占一行,name字段存放的数据库的名称,具体字段可以看此博客sys.database系统表详细说明 所以判断…...

树莓派安装.NET 6.0

首先安装.Net Core依赖(未使用) sudo apt install -y libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev libcurl4 libcurl4-openssl-dev libssl-dev uuid-dev unzip libgdiplus libc6-dev libkrb5-3 需要安装的依赖微软官方文档已经列出…...

小华HC32F448串口使用

目录 1. 串口GPIO配置 2. 串口波特率配置 3. 串口接收超时配置 4. 串口中断注册 5. 串口初始化 6. 串口数据接收处理 7. DMA接收配置和处理 1. 串口GPIO配置 端口号和Pin脚号跟STM32没什么区别。 串口复用功能跟STM32大不一样。 如下图,选自HC32F448 表 2…...

Redis实现简易消息队列的三种方式

Redis实现简易消息队列的三种方式 消息队列简介 消息队列是一种用于在计算机系统中传递和处理数据的重要工具。如果你完全不了解消息队列,不用担心,我将尽力以简单明了的方式来解释它。 首先,想象一下你正在玩一个游戏,而游戏中…...

基于SpringBoot的在线小说阅读平台系统

基于SpringBoot的在线小说阅读平台系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 个人中心 登录界面 管理员界面 摘要 基于Spring Boot的在线小说阅读…...

VMware Workstation 与 Hyper-V 不兼容。请先从系统中移除 Hyper-V 角色

引用地址...

uniapp h5 MD5加密

文章目录 1.当使用 CryptoJS 进行 MD5 加密时,你需要先引入 CryptoJS 库并确保它已经正确安装。下面是一个更详细的示例代码:2.然后,在需要使用 MD5 加密的地方,引入 CryptoJS 代码库:3.接下来,我们定义一个…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...