教程更新 | 持续开源 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
相关文章:
教程更新 | 持续开源 RK3568驱动指南-驱动基础进阶篇
《iTOP-RK3568开发板驱动开发指南》手册文档更新,手册内容对应视频教程,后续资料会不断更新,不断完善,帮助用户快速入门,大大提升研发速度。 ✦ 第一篇 驱动基础 第1章 前言 第2章 你好!内核源码 第3章 …...
Jmeter测试关联接口
Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,本文主要介绍jmeter通过正则表达式提取器来实现接口关联的方式,可供参考。 一、实例场景: 有如下两个接口,通过正则表达式提取器,将第一…...
C++之基于Winsock2封装UDPServer与UDPClient
文章目录 Socket过程UDPServer.hUDPServer.cppUDPClient.hUDPClient.cppmain.cppCMakeLists.txt测试截图 Socket过程 UDPServer UDPClient UDPServer.h #ifndef UDPSERVER_H_INCLUDED #define UDPSERVER_H_INCLUDED#include <iostream> #include <string> #inclu…...
为什么说指针是c语言的灵魂?
为什么说指针是c语言的灵魂? 语言主要操作的对象是数据,c语言里面能够有大容量数据的地方就是指针指向的heap内存。从这 个角度来看,确实指针就是数据的灵魂。最近很多小伙伴找我,说想要一些c语言资料,然后我根据自己…...
性能测试jmeter命令行运行+html测试报告解读
windows下打开jmeter的运行窗口,可以看到提示不要用GUI模式进行负载测试,如果要用负载测试,用cli模式,因为GUI模式运行jmeter比较消耗性能。 命令行模式 windows下找到jemeter所在文件夹,打开cmd输入命令。 jmeter -n…...
Service Mesh和Kubernetes:加强微服务的通信与安全性
文章目录 什么是Service Mesh?Service Mesh的优势1. 流量控制2. 安全性3. 可观测性 Istio:Service Mesh的领军者流量管理安全性可观测性 Linkerd:轻量级Service Mesh流量管理安全性可观测性 Istio vs. Linkerd实际应用结论 🎈个人…...
『吴秋霖赠书活动 | 第三期』《Python asyncio并发编程》
文章目录 1. 写在前面2. 浅谈asyncio3. Python asyncio并发编程 不再受限于!asyncio异步让你的程序在高并发时翱翔自如! 声明:赠书活动是博主与出版社达成合作,只属于粉丝的专属福利 本期书籍:《Python asyncio并发编程…...
数字孪生在工厂领域的应用和优势
工厂运营一直以来都是高度复杂且信息密集的任务。然而,随着数字孪生技术的出现,工厂领域正在经历一场前所未有的革命。本文将介绍数字孪生在工厂领域的应用,以及它如何重新定义了制造业的运营方式。 什么是数字孪生? 数字孪生是…...
如何写代码实现VRP问题中车辆容量限制及时间窗要求(python)
问题研究背景 使用遗传模拟退火算法求解如下10个卸货点的VRPTW问题。为了使研究的问题更加有意义,本人将时间限理解为服务点一天的具体可以允许配送的时间。 如果不要求车辆从配送中心出发的时间是统一的并且为0时刻,那么就默认第一个配送节点是一定能赶…...
C语言求解汉诺塔问题
完整代码: /*Hanoi(汉诺)塔问题。这是一个古典的数学问题:古代有一个梵塔,塔内有 3 个 座 A,B,C,开始时 A 座上有 64 个盘子,盘子大小不等,大的在下,小的在上。有一个老…...
安装LSF
安装需求 基本硬件配置建议: CPU 4核或以上(LSF 没有最低 CPU 需求,此处只是建议)内存 8G或以上( 当没有作业在运行时, Linux x86-64 上集群中的 LSF 守护程序将使用大约 488 MB 内存。)交换…...
百度的新想象力在哪?
理解中国大模型,百度是一个窗口。这个窗口的特殊性不仅在于变化本身,而是在于百度本身就是那个窗口。 作者|皮爷 出品|产业家 沿着首钢园北区向西北步行10分钟,就能看到一个高约90米的大跳台,在工业园钢铁痕迹的印衬下&#…...
Linux使用rpm包安装mysql5.7
以前安装过mysql 前言:检查以前是否装有mysql rpm -qa|grep -i mysql安装了会显示: bt-mysql57-5.7.31-1.el7.x86_64 停止mysql服务和删除之前安装的mysql rpm -e bt-mysql57-5.7.31-1.el7.x86_64查找并删除mysql相关目录 find / -name mysql/va…...
LLDB 三种输出方式 对比及原理探索
前言 当我们的项目过大时,就会使我们项目的编译耗时过长,如何在项目运行时进项代码调试,熟练使用LLDB就可以解决这个难题,大幅度提高我们的开发效率。 什么是 LLDB? LLDB是英文Low Lever Debug的缩写,是XCode内置的为我们开发者提供的调试工具,它与LLVM编译器一起,存…...
基于架构软件设计-架构真题(五十八)
“41”视图主要描述系统逻辑架构。其中()视图用于描述对象模型,并说明系统应该为用户提供哪些服务。 过程开发物理逻辑 解析: “41”有逻辑视图、过程视图、物理视图、开发视图和架构的描述。 逻辑视图:设计的对象…...
jvm实现的锁优化
目录 轻量级锁 轻量级锁的工作流程 轻量级锁的解锁 偏向锁 偏向锁的流程: 偏向锁和轻量级锁机区别: 其他优化 自旋锁和自适应自旋锁 锁消除 锁粗化 轻量级锁 “轻量级” 是相对于使用操作系统互斥量来实现的传统锁而言的,因此传统的…...
JMeter做http接口功能测试
1. 普通的以key-value传参的get请求 e.g. 获取用户信息 添加http请求;填写服务器域名或IP;方法选GET;填写路径;添加参数;运行并查看结果。 2. 以Json串传参的post请求 e.g. 获取用户余额 添加http请求;…...
【安全体系架构】——SIEM架构
什么是SIEM架构? 安全信息与事件管理(SIEM)架构是一种综合性的安全管理系统,旨在监控、检测、报告和应对安全事件和威胁。SIEM系统集成了多个安全功能,包括日志收集、事件管理、威胁检测和响应,以提供组织…...
nginx acess日志找不到访问记录问题
这个是AI给出的可能得原因: 如果在nginx中找不到你的访问记录,但你确实进行了访问并得到了返回,可能有以下原因: 日志文件位置设置不正确:请确保你的nginx配置文件中的access_log指令指向了正确的日志文件路径。日志文…...
canvas使用
canvas使用 1 canvas绘制基本 1 概念 HTML5<canvas>元素用于图形的绘制,区别于css,它的绘制通过javascript来完成绘制的 <canvas>标签只是图形容器,必须使用及保本来绘制图形 Canvas API主要聚焦与2D图形。同时<canvas>元素的Web…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
