教程更新 | 持续开源 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.rhkb.cn/news/164589.html

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

相关文章

Mysql第二篇---InnoDB数据存储结构

Mysql第二篇—InnoDB数据存储结构 数据库的存储结构: 页 索引结构给我们提供了高效的索引方式, 不过索引信息以及数据记录都是保存在文件上的(innodb的ibd文件, MyISAM的MyI和MyD文件), 确切的说是存储在页结构中. 另一方面, 索引是在存储引擎中实现的, MySQL服务器上的存储引…

工业自动化编程与数字图像处理技术

工业自动化编程与数字图像处理技术 编程是计算机领域的基础技能,对于从事软件开发和工程的人来说至关重要。在工业自动化领域,C/C仍然是主流的编程语言,特别是用于工业界面(GUI)编程。工业界面是供车间操作员使用的,使用诸如Hal…

二叉树,堆排序及TopK问题

要讲二叉树的概念,就要先讲树的概念。 树是什么呢? 树其实是一种储存数据的结构,因为他的结构倒过来和生活中的树很相似所以才被称之为树。 这是一颗多叉树,从最顶端的节点可以找到下边的几个节点,下边的节点又可以找…

【力扣刷题】回文链表、环形链表、合并两个有序链表

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 刷题篇 一、回文链表1.1 题目描述1.2 思路分…

1.16.C++项目:仿muduo库实现并发服务器之HttpContext以及HttpServer模块的设计

文章目录 一、HttpContext模块二、HttpServer模块三、HttpContext模块实现思想(一)功能(二)意义(三)接口 四、HttpServer模块实现思想(一)功能(二)意义&#…

经典网络模型

Alexnet VGG VGG的启示 VGGNet采用了多次堆叠3x3的卷积核,这样做的目的是减少参数的数量。 例如,2个3x3的卷积核效果相当于1个5x5的卷积核效果,因为它们的感受野(输入图像上映射区域的大小)相同。但2个3x3卷积核的参数…

1024程序员狂欢节 | IT前沿技术、人工智能、数据挖掘、网络空间安全技术

一年一度的1024程序员狂欢节又到啦!成为更卓越的自己,坚持阅读和学习,别给自己留遗憾,行动起来吧! 那么,都有哪些好书值得入手呢?小编为大家整理了前沿技术、人工智能、集成电路科学与芯片技术、…

YOLOv8改进实战 | 更换主干网络Backbone之轻量化模型Efficientvit

前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操作,并将它们分别作用于输入的不…

PHP的学习入门建议

学习入门PHP的步骤如下: 确定学习PHP的目的和需求,例如是为了开发网站还是为了与数据库交互等。学习PHP的基础语法和程序结构,包括变量、数据类型、循环、条件等。学习PHP的面向对象编程(OOP)概念和技术。学习与MySQL…

BIO、NIO、IO多路复用模型详细介绍Java NIO 网络编程

文章目录 前言基本概念BIO过程NIO过程IO多路复用过程Java NIO编程Java NIO 核心概念Java NIO 示例 总结 前言 上文介绍了网络编程的基础知识,并基于 Java 编写了 BIO 的网络编程。我们知道 BIO 模型是存在巨大问题的,比如 C10K 问题,其本质就…

TCP/IP模型五层协议

TCP/IP模型五层协议 认识协议 约定双方进行的一种约定 协议分层 降低了学习和维护的成本(封装)灵活的针对这里的某一层协议进行替换 四/五层协议 五层协议的作用 应用层 应用层常见协议 应用层常见协议概览 基于TCP的协议 HTTP(超…

腾讯云 CODING 快速应用中心,让您 10 分钟轻松玩转 AIGC

点击链接了解详情 前言 AI 时代已经到来,与其说这是一个技术变革,不如说这是对我们工作和生活方式的全面升级。很多人已经听说过 Stable Diffusion AI 绘图和 Meta 公司推出的免费大语言模型 Llama 2,它们代表了当今最前沿的技术水平。但对于…

1.5状态压缩DP

1.小国王 在 n n nn nn的棋盘上放 k k k个国王,国王可攻击相邻的 8 8 8个格子,求使它们无法互相攻击的方案总数。 输入格式 共一行,包含两个整数 n n n和 k k k。 输出格式 共一行,表示方案总数,若不能够放置则输出…

全国产EtherCAT运动控制边缘控制器(五):IO配置与回零运动的Python+Qt开发

今天,正运动小助手给大家分享一下全国产EtherCAT运动控制边缘控制器ZMC432H如何使用PythonQT实现单轴回零运动控制开发。 01 功能简介 全国产EtherCAT运动控制边缘控制器ZMC432H是正运动的一款软硬件全国产自主可控,运动控制接口兼容EtherCAT总线和脉冲…

Elasticsearch使用——结合MybatisPlus使用ES es和MySQL数据一致性 结合RabbitMQ实现解耦

前言 本篇博客是一篇elasticsearch的使用案例,包括结合MybatisPlus使用ES,如何保证MySQL和es的数据一致性,另外使用了RabbitMQ进行解耦,自定义了发消息的方法。 其他相关的Elasticsearch的文章列表如下: Elasticsear…

【无人机】太阳能伪卫星VoLTE无人机设计(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

MySQL数据库简单安装

MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管…

acme.sh: 未找到命令解决办法丨acme命令安装ssl证书

在Freessl申请的ssl证书现在都是需要acme命令了,服务器没有自带所以会出现这个报错,首先 1、安装并下载: curl https://get.acme.sh | sh -s emailmyexample.com2、进入到安装目录,创建指令别名: cd /root/.acme.sh/ alias acm…

电脑删除的视频怎么恢复?可尝试着3钟恢复办法!

无论是为了工作还是生活,我们都有可能在电脑上保存重要的视频,如宣传视频、回忆录视频等。这些视频通常包含了制作者的心血,要是被我们误删除了,很难重新拍摄,那么电脑删除的视频怎么恢复? 能。通常&#…

大托,如何站上天心南部的价值高地?

作者 | 魏启扬 陈宇航 来源 | 洞见新研社 陈飞 摄 “商贾云集于四方,市井数盈于万户”,长沙南城古往今来生生不息的热辣与烟火,每隔一段时间,都会有璀璨的迸发。 才在“加长版”黄金周释放了“不夜南城”的魅力,第…