《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关注:北京迅为,