linux驱动-platform子系统

news/2024/10/15 20:16:30/

目录

1.传统字符设备驱动框架的缺点

2.总线、设备、驱动

3.设备注册

4.驱动注册


1.传统字符设备驱动框架的缺点

        缺点:驱动可移植性差,原因是驱动里面包括了很多该芯片特有的消息,如果是其他平台,硬件信息会有差异,所以驱动无法直接使用。

2.总线、设备、驱动

        在Linux 2.6内核中,提出了"总线"、"设备"、"驱动"的架构,目的是让我们写出来的驱动通用性更强。

核心思想:

        将设备的信息从驱动中分离出来,我们需要在操作系统中,添加设备驱动两部分。

设备中包含是设备的信息(资源),驱动中包含的是操作设备函数接口。为了能让驱动最终能操作我们的硬件设备,我们在驱动中必须获取设备的信息(资源)。​

问题: 

        设备和驱动是分离的,那么驱动是如何获取具体设备信息的呢?

回答:​

        设备和驱动都会注册到总线上,当注册设备的时候,会去寻找同名的驱动,当注册驱动的时候也会去找同名的设备。相互查找。一旦匹配成功,操作系统就会自动调用驱动提供的probe函数。我们只需要在probe函数中,使用操作系统提供的通用API获取硬件的资源即可。

"总线" 理解:

        总线在操作系统中本质就是两个链表:挂载设备的链表挂载驱动的链表。在操作系统中总线种类可以分成两大类,平台总线边缘设备之间通信的总线

        平台总线:平台总线挂载都是控制器设备,用于CPU核与硬件控制器之间的通信。在Linux系统中用"platform bus"表示。

        边缘设备之间通信的总线:边缘设备之间通信的总线挂载是符合总线时序的外围设备,如:i2c , spi ,usb , uart 等。不同的边缘设备之间通信的总线,总线时序是不一样的,对于这些总线,Linux 内核是单独实现的。

基于总线写驱动思路:

  • 根据自己的设备,确定总线的类型
  • 根据总线的类型, 确定设备在总线上如何描述
  • 根据总线的类型, 确定驱动在总线上如何描述
  • 根据总线的类型,确定在总线上如何注册设备
  • 根据总线的类型,确定在总线上如何注册驱动
  • 根据总线的类型, 确定设备和驱动匹配原则

        设备和驱动匹配后,操作系统就会调用驱动提供的probe函数。在这个函数中,一般需要做两件事情:

       (1)获取匹配的硬件资源​

       (2)向上层提供硬件设备的操作函数接口(如:注册字符设备)

        

        


http://www.ppmy.cn/news/1538287.html

相关文章

论文 | ART: Automatic multi-step reasoning and tool-use for large language models

摘要: LLM 在进行多步推理和工具使用时存在局限性,例如需要大量标注数据或专门训练。现有的 CoT 提示和工具使用方法难以扩展到新任务和工具。本文介绍了 ART 框架,该框架使用冻结的 LLM 自动生成推理步骤,并选择和调用外部工具。…

java生成日历数据列表并按日历格式导出到excel

日历格式输出 日历数据列表导出封装日历格式实体类效果 日历数据列表 /**** 封装日历数据* param year 年份* param month 月份*/public List<InspectionDailyStaffPlanCalendarData> selectCalendarDataList(int year,int month,List<InspectionDailyStaffPlan> …

[单master节点k8s部署]34.ingress 反向代理(一)

ingress是k8s中的标准API资源&#xff0c;作用是定义外部流量如何进入集群&#xff0c;并根据核心路由规则将流量转发到集群内的服务。 ingress和Istio工作栈中的virtual service都是基于service之上&#xff0c;更细致准确的一种流量规则。每一个pod对应的service是四层代理&…

AI资深导师指导-ChatGPT深度科研工作应用、论文撰写、数据分析及机器学习与AI绘图

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年4月&#xff0c;更强版本的ChatGPT4.0上线&#xff0c;文本、语音、图像等多模态交互方式使其在…

【中短文】区分神经网络中 表征特征、潜层特征、低秩 概念

1. 表征特征&#xff08;Representational Feature&#xff09;&#xff1a; 表征特征通常指的是输入数据经过NN处理就得到的中间表示或输出表示。 这些特征由NN经学习过程自动提取&#xff0c;能更好捕捉输入数据的本质属性。 例如&#xff1a;在图像识别任务中&…

概率 期望与方差

一、期望 1、定义 对随机变量可能取值的加权平均&#xff0c;其中权重是每个可能取值的概率。用E表示&#xff0c;如x是随机变量&#xff0c;则该期望为EX 2、离散型随机变量的期望 对于离散随机变量 X &#xff0c;其可能的取值为 x1,x2,…,xn&#xff0c;对应的概率为 E(X)…

从200台手机到一台电脑的时代到了

大家都知道&#xff0c;现在这个时代呀&#xff01;到处都是网络&#xff0c;社交平台那可老火了。其中TK这个平台&#xff0c;好多人都喜欢在上面玩&#xff0c;也有不少人想借着它来做营销呢。但是啊&#xff0c;在做TK营销的时候&#xff0c;有个账号关联的问题老让人又疼。…

python数据分析与可视化介绍

本文主要讲述了数据可视化的基础知识&#xff0c;包括什么是数据可视化&#xff0c;数据可视化应用以及Python可视化工具库。 什么是数据可视化 可视化是一种通过视觉的方式有效传达信息的技术。数据可视化旨在借助于图形化手段&#xff0c;将数据以视觉形式来呈现&#xff0c…