linux驱动开发之——device与driver关系趣谈

Linux设备模型(四) device和device driver 参考文章:http://www.wowotech.net/linux_kenrel/device_and_driver.html 目录1. 前言2. struct device和struct device_driver2.1. struct device 介绍2.2. struct device_driver 介绍2.3. struct device和struct device_driver 与 Kobject 的关系3. 设备模型框架下驱动开发的基本步骤4. 设备驱动probe的时机5. 说明5.1. 阅读详情

昨天看到了一则新闻,标题是《家庭主妇都用上了LINUX》,如果在10年前看到这则新闻,我们肯定惊讶不已,会说:“我靠,家庭主妇也他妈用 LINUX",但现在家庭主妇用LINUX对我们来说一点都不新鲜,因为LINUX从服务器市场到普通PC市场,其身影无处不在,多的就像牛毛,我们不想看到它都难,随着Linux OS使用的增多,必然会产生一种新的需求——编写驱动程序,就像中国人口的高速增长,必然会出现要采取计划生育的需求一样,同时一种新的职业也随之诞生 ——Linux驱动开发工程师。
如果刚涉及Linux驱动开发,也就是说你还是个菜鸟时,一般都不会去关心设备驱动模型,因为这个东东太抽象,不是变态不会去深究,新手更多关注的是 “helloword"怎么写,但随着学习的深入,对Linux驱动理解的深化,我们不得不去探究一下bus,device,driver之间的关系,看看表面背后那只无形的手,今天不想多谈bus,我今天重点谈一下device与driver的关系,因为他们俩的关系很暧昧。很值得探究。为什么这样说呢?如果把device比作人的身躯,那么driver就是人的灵魂,如果把device比作男人,那么driver就是女人,如果身躯离开了灵魂,那它只是一堆烂肉,如果男人离开了女人,那他也将一事无成,因为女人是男人背后最大的驱动力(driver),如果device是西门庆,那driver就是潘金莲……
那device与driver是如何产生暧昧关系的?这个问题才是我们最关心的,要解答这个问题,那就要问bus了,因为她是媒婆,是牵线人,bus把 device介绍给了driver,device与driver眉来眼去,最终确定了这种暧昧关系,bus是如何牵的线呢?这个今天我们就不去多加追究,对媒婆没有太多兴趣,据可靠情报透露,bus是通过家传的配对大法(match)使device与driver联系了起来,当然我们也会想到一句话:红颜祸水。的确不错,driver抛(probe)的媚眼也是关键。
好了,说了很多,是不是有点晕,最后整理一下device与driver产生暧昧关系的过程,首先由媒婆牵线(match),后来driver抛个媚眼 (probe),device便拜倒在了driver的石榴裙下,彼此产生了暧昧关系,最后谁也离不开了谁,彼此缺少了对方,就像鱼儿离开了水!

Linux设备模型(5)_device和device driver 1. 前言 device和device driver是Linux驱动开发的基本概念。Linux kernel的思路很简单:驱动开发,就是要开发指定的软件(driver)以驱动指定的设备,所以kernel就为设备和驱动它的driver定义了两个数据结构,分别是device和device_driver。因此本文将会围绕这两个数据结构,介绍Linux设备模型的核心逻辑,包括: 设备及设备驱动 阅读详情

相关推荐

J4125音频驱动(声卡驱动)

intel J4125 音频驱动(声卡驱动) 英特尔智音技术

Intel J4125 音频驱动(声卡驱动)安装

Intel J4125 音频驱动(声卡驱动)安装

jam8139的博客 1万+

J4125小主机声卡驱动

前段时间给一台七喜的小主机重装系统后声卡驱动怎么都安装不上,驱动精灵跟驱动总裁都试过,要么就是安装上没声音要么就是有叹号!找了好久找到这个,安装上后就有声音了,如果你也遇到类似情况不妨试下!

Device Driver 驱动程序

驱动程序(Device Driver)全称为“设备驱动程序”,是一种可以使计算机和设备通信的特殊程序,可以说相当于硬件的接口,操作系统只能通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。 正因为这个原因,驱动程序在系统中的所占的地位十分重要,一般当操作系统安装完毕后,首要的便是安装硬件设备的驱动程序。不过,大多数情况下,我们并不需要安装所有硬件设备的驱动程序...

移动编程 3074

宇树G1双足机器人SLAM开发环境搭建实战指南

SLAM(同步定位与建图)是机器人自主导航的核心技术。在双足人形机器人平台上,由于运动模型复杂、机身晃动带来高频IMU噪声,SLAM开发对环境配置和依赖管理提出了更高要求。以宇树G1为例,系统阐述如何通过Ubuntu 20.04、ROS Noetic与Docker容器化方案构建可复现的SLAM开发环境。先介绍依赖分层管理与版本锁定原理,再深入catkin工作空间编译、传感器驱动集成、网络与多机通信配置等工程实践,最后提供常见问题排查与避坑指南。这套方法论不仅适用于G1,也可迁移至其他双足或轮式机器人平台,帮

weixin_32025789的博客 264

告别U盘!在Ubuntu 22.04上从零搭建PXE网络装机服务器(支持UEFI/Legacy双启动)

本文详细介绍了在Ubuntu 22.04上搭建PXE网络装机服务器的完整流程,支持UEFI/Legacy双启动模式。通过配置DHCP、TFTP和HTTP服务,实现无需U盘的高效批量系统部署,解决传统安装方式的介质依赖、版本控制和时间成本问题,显著提升机房维护和设备部署效率。

weixin_42569329的博客 248

驱动程序安装全攻略1

一、什么是驱动程序  根据百度百科:驱动程序,英文名为“Device Driver”,全称为“设备驱动程序”, 是一种可以使计算机和设备通信的特殊程序,可以说相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。 因此,驱动程序被誉为“硬件的灵魂”、“硬件的主宰”、和“硬件和系统之间的桥梁”等。   刚安装好的系统操作系统,很

赵逸寒的专栏 2827

Python自动化神器:5分钟搞定PSCAD仿真波形图导出到Word(附WPS兼容方案)

本文介绍如何利用Python自动化库快速将PSCAD仿真波形图导出到Word或WPS,大幅提升电力系统仿真工程师的工作效率。通过精准坐标定位、智能排版和批量处理功能,实现仿真报告的自动化生成,同时提供WPS兼容方案,适用于不同办公环境。

sony5的博客 207

linux device driver 关系,Linux驱动开发之device与driver关系趣谈

昨天看到了一则新闻,标题是《家庭主妇都用上了Linux》,如果在10年前看到这则新闻,我们肯定惊讶不已,会说:“我靠,家庭主妇也他妈用 Linux",但现在家庭主妇用Linux对我们来说一点都不新鲜,因为Linux从服务器市场到普通PC市场,其身影无处不在,多的就像牛毛,我们不想看到它都难,随着Linux OS使用的增多,必然会产生一种新的需求——编写驱动程序,就像中国人口的高速增长,必然会出现要...

weixin_39630771的博客 441

[模型部署]-[LLM]昇腾部署Qwen3-Coder-30B-A3B-Instruct

摘要:本文介绍了在Ascend NPU上部署Qwen3-Coder-30B-A3B-Instruct大模型的实践过程。通过vLLM-Ascend框架,详细说明了环境准备(CANN 8.1、PyTorch-NPU 2.5.1等)、模型下载、容器启动及服务部署步骤,包括vLLM服务的启动参数配置和接口测试方法。测试结果显示在当前2卡910B3配置下性能表现仅为8token/s(1并发),并指出流式调用时存在无法输出usage信息的问题。该方案为Ascend平台私有化部署大模型推理服务提供了参考实现。

1668

STM32F103C8T6驱动DM542步进电机:从CubeMX配置到按键控制的全流程避坑指南

本文详细介绍了如何使用STM32F103C8T6通过CubeMX配置驱动DM542步进电机的全流程,包括PWM频率计算、GPIO模式选择及按键控制实现。重点解决了常见硬件连接错误、PWM参数配置及加减速算法优化,帮助开发者快速搭建稳定的电机控制系统。

weixin_42741930的博客 306

如何理解驱动程序、设备树、platform、device、driver之间的关系

理解驱动程序、设备树、platform、device、driver之间的关系,学习利用设备树来使用或者编写驱动程序

weixin_42408707的博客 6532

【人工智能】提示词避坑指南:为什么大模型越让它“禁止”,它越要“唱反调”?

和 AI 沟通就像和聪明但直脑筋的工科生说话——

奶爸的编程之路,也就一周冷个三天 224

linux驱动程序中设备树、device、driver之间的关系

linux驱动程序中设备树、device、driver之间的关系驱动程序的一般形式1、platform_driver2、platform_device 驱动程序的一般形式 下面是一个简单的驱动程序框架: #include <linux/fs.h> #include <linux/init.h> #include <linux/mm.h> #include &lt...

qq_32938605的博客 4664

智能车图像处理12-进阶篇4--环岛辅助判断条件

主函数: 第6行: 含义是当前需要不在坡道和车库状态 第11-12行 : 寻找一下环岛的双断点(在辅助函数中) 第16-66行: 当左右线的方差满足一边很大,一边很小时,truepianfangflag /truepianfangflagforleft 置1,在环岛的判断中使用。 辅助函数: 双断点函数(左与右相似,以做为例): 第13-28行: 第一处断点 第29-40行: 第一处断点后 连续边线 第41-52行: 第一处连续后,第二处断点 第53-64行: 第二处断点后,第二处

taiyuezyh的博客 1万+

OpenSpec 完全指南 config.yaml文件

不管是项目内还是全局存放,自定义工作流都要遵守以下规则,否则会导致OpenSpec无法识别,新手一定要记牢:一个文件夹 = 一个工作流:工作流文件夹的名称,就是中schema字段要填写的名称;每个工作流文件夹必须包含:这是工作流的核心定义文件,没有它,OpenSpec无法识别这个工作流;模板文件统一放templates/目录:如果需要自定义生成文件的模板(比如统一的提案模板、任务模板),就放在工作流文件夹下的templates/里,OpenSpec会自动识别;

h a 6 6 6 c k 为 你解决复杂难题! 1415

驱动中的device和device_driver结构体

device和device driver是Linux驱动开发的基本概念。Linux kernel的思路很简单:驱动开发,就是要开发指定的软件(driver)以驱动指定的设备,所以kernel就为设备和驱动它的driver定义了两个数据结构,分别是device和device_driver。

caiji0169的博客 2896

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Linux 总线bus、设备device、驱动device_driver三者之间的关系

以下内容都为自己理解: 1.总线bus 通常所说的总线都是cpu与设备之间通信的协议,就像两个地方,一个地方住着cpu,一个地方住着设备,总线就相当于CPU通过什么方式到达设备。(就像你要通过一个墓道,就要按照墓主人设计的方式过去,要不就会被暗器杀掉,永远也到达不了)。 但是,Linux里面的总线,我的理解就是连接设备和驱动,不是常规意义上的总线,最简单就是platform总线,它不是一个协议,它就是为了那些没有广义上协议(usb、spi、iic)的设备服务的。 bus的结构体如下所示: struct bu

weixin_43845195的博客 3011

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Linux设备驱动模型框架分析(三)——LDDM的实体bus_type、device和device_driver

在Linux设备模型中,Bus(总线)是一类特殊的设备,它是连接处理器和其它设备之间的通道(channel)。为了方便设备模型的实现,内核规定,系统中的每个设备都要连接在一个Bus上,这个Bus可以是一个内部Bus、虚拟Bus或者Platform Bus。 device和device driver是Linux驱动开发的基本概念。Linux kernel的思路很简单:驱动开发,就是要开发指

newdye的专栏 3256

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Linux 驱动开发两种范式对比:platform driver 与 device tree 的优劣势分析与迁移策略

Device tree 已是 ARM Linux 的事实标准,新项目不要再使用 platform device 硬编码方式。但迁移老项目需要理性评估:如果只有 1-2 块定制板卡且无上游化计划,迁移收益有限。当板卡数超过 3 块或需要与 SoC 厂商协作时,device tree 带来的 BSP 解耦收益是决定性的。驱动程序本身建议保留+ 传统双兼容模式,一次重构,兼容新旧两种硬件描述方式。

qq_42431428的博客 5155

设备驱动模型之driver-bus-device与probe

设备驱动模型之driver-bus-device与probe

多云转晴,适合debug的博客 1836

linux驱动关于platfrom的device以及driver

(带设备树)驱动加载时,是利用设备树里的compatible去进行设备跟驱动的匹配,设备树在内核加载之后会自动将节点转化为platform_device这种格式,同时把名字放到of_node这个地方。利用compatible进行匹配。 不带设备树的驱动加载时,可以用name名字去匹配,probe函数中是有device注册的函数的。 linux驱动中,自动加载驱动是在执行完insmod指令之后,手动加载驱动的顺序是先insmod,然后在mknode,之后再d...

baidu_38310096的博客 3441

从DM9000驱动看platform device与driver的关系

 快乐虾http://blog.youkuaiyun.com/lights_joy/lights@hb165.com  本文适用于ADSP-BF561uclinux-2008r1.5-rc3 (smp patch)Visual DSP++ 5.0(update 5)  欢迎转载,但请保留作者信息内核中的platform driver机制需要将设备本身的资源注册进内核

gc315630的专栏 733

linux bus、driver、device及三者的关系

一、概念 1、bus 总线是处理器和设备之间的通道。总线有多种类型,每种总线可以挂载多个设备。 2、driver 驱动程序是在CPU运行时,提供操作的软件接口。所有的设备必须有与之配套驱动程序才能正常工作。一个驱动程序可以驱动多个类似或者完全不同的设备。 3、device 设备就是连接在总线上的物理实体。设备是有功能之分的。具有相同功能的设备被归到一个类,如输入设备(鼠标,键盘,游戏杆等)。 二、三者的关系 总线上有两个重要的链表: 1)设备(device)链表...

u010783226的专栏 2457

linux下bus,device,driver三者关系

linux下bus,device,driver三者关系   1.bus:   总线作为主机和外设的连接通道,有些总线是比较规范的,形成了很多协议。如 PCI,USB,1394,IIC等。任何设备都可以选择合适的总线连接到主机。当然主机也可能就是CPU本身。内存也是通过BUS连接到主机的,可内存 使用的总线不是外设总线,因此和...

dfz87292的博客 149
上一篇: Linux人才需求与Windows持平 职位“粥多僧少”
下一篇: Linux系统下USB摄像头驱动开发
Linux先生
博客等级 码龄20年 97粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值