Linux驱动开发之Platform_device和Platform_driver

Linux 设备驱动开发 —— platform 设备驱动 一、platform总线、设备与驱动         一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2C、SPI等的设备而言,这自然不是问题,但是在嵌入式系统里面,SoC系统中集成的独立的外设控制器、挂接在SoC内存空间的外设等确不依附于此类总线。基于这一背景,Linux发明了一种虚拟的总线,称为platform总线,相应的设备称为platform_d 阅读详情

从 Linux 2.6 起引入了一套新的驱动管理和注册机制 :Platform_device 和 Platform_driver 。

Linux 中大部分的设备驱动,都可以使用这套机制 , 设备用 Platform_device 表示,驱动用 Platform_driver 进行注册。

 

Linux platform driver 机制和传统的 device driver 机制 ( 通过 driver_register 函数进行注册 ) 相比,一个十分明显的优势在于 platform 机制将设备本身的资源注册进内核,由内核统一管理,在驱动程序中使用这些资源时通过 platform device 提供的标准接口进行申请并使用。这样提高了驱动和资源管理的独立性,并且拥有较好的可移植性和安全性 ( 这些标准接口是安全的 ) 。

Platform 机制的本身使用并不复杂,由两部分组成: platform_device 和 platfrom_driver 。

通过 Platform 机制开发发底层驱动的大致流程为 :  定义 platform_device à 注册 platform_device à 定义 platform_driver à 注册 platform_driver 。

首先要确认的就是设备的资源信息,例如设备的地址,中断号等。

在 2.6 内核中 platform 设备用结构体 platform_device 来描述,该结构体定义在 kernel\include\linux\platform_device.h 中,

struct platform_device {

  const char * name;

  u32  id;

  struct device dev;

  u32  num_resources;

  struct resource * resource;

};

该结构一个重要的元素是 resource ,该元素存入了最为重要的设备资源信息,定义在 kernel\include\linux\ioport.h 中,

struct resource {

  const char *name;

  unsigned long start, end;

  unsigned long flags;

  struct resource *parent, *sibling, *child;

};


Linux驱动开发之platform驱动 本文通过设计使用platform架构的ds18b20程序驱动,来介绍如何编写platform驱动。 阅读详情

相关推荐

WPF实战:利用Live Charts实现高性能动态曲线可视化

本文详细介绍了如何在WPF中使用Live Charts实现高性能动态曲线可视化,特别适用于工业监控和金融分析等实时数据场景。通过增量渲染、内存复用和硬件加速等核心技术,Live Charts能够高效处理高频数据更新,显著提升图表流畅度。文章提供了从基础实现到工业级优化的完整解决方案,帮助开发者应对各种性能挑战。

weixin_29189373的博客 407

Linux内核平台设备驱动模型platform_device和platform_driver框架

关于Linux内核的平台设备驱动模型框架

D584640810的博客 4390

交叉验证选型指南:k折、留一法、时序与分层CV实战决策

交叉验证是评估机器学习模型泛化能力的基础技术,其核心在于通过系统性数据重划分,缓解有限样本对真实分布估计的偏差。原理上,它通过控制训练-验证数据的独立性与代表性,诊断过拟合风险并提升性能指标的稳定性。技术价值体现在避免单次切分导致的结果偶然性、数据利用低效及验证集污染等问题。典型应用场景涵盖分类任务中的类别不平衡处理、时间序列预测的因果约束、用户行为建模中的数据泄露防控等。本文聚焦k折交叉验证、留一法、时间序列交叉验证与分层抽样等主流方法的适用边界与工程落地要点,结合过拟合诊断和泛化能力评估两大热词,提供可

dienangpiao2051的博客 477

Platform_device和platform_driver

<br />通过Platform机制开发发底层驱动的大致流程为: 定义 platform_device---注册 platform_device ---定义 platform_driver-----注册 platform_driver。 <br />1. Platform_device 定义于 kernel/include/linux/platform_device.h中,<br />struct platform_device {<br /> const char * name;<br /> u32 id

嵌入精灵 3086

英飞凌TC397芯片时钟树详解:从EB-tresos配置到PLL锁相环实战避坑

本文详细解析了英飞凌TC397芯片的时钟树架构,从EB-tresos配置到PLL锁相环的实战应用,帮助工程师避免常见配置陷阱。文章深入探讨了时钟源层、频率转换层和分配网络层的设计原理,提供了PLL配置的数学公式和EB-tresos关键容器的配置要点,并分享了调试技巧与性能优化实践,适用于MCU开发中的时钟管理需求。

weixin_42524226的博客 212

1. Klipper从安装到运行

本文记录Klipper固件从安装,配置到运行的详细过程

weixin_42098934的博客 1万+

linux 内核驱动--Platform Device和Platform_driver注册过程

从 Linux 2.6 起引入了一套新的驱动管理和注册机制 :Platform_device和Platform_driver。 Linux 中大部分的设备驱动,都可以使用这套机制 ,设备用 Platform_device 表示,驱动用 Platform_driver 进行注册。 Linux platform driver 机制和传统的 device driver机制 ( 通过 driver_register 函数进行注册 ) 相比,一个十分明显的优势在于 platform 机制将设备...

baidu_38310096的博客 1184

模型剪枝实战 | Torch-Pruning 库在YOLOv8上的应用指南

本文详细介绍了如何使用Torch-Pruning库对YOLOv8模型进行结构化剪枝,以实现模型“瘦身”。通过DepGraph(依赖图)技术自动处理层间依赖,确保剪枝安全。文章提供了从环境搭建、核心原理理解到完整剪枝流程的实战指南,并强调了剪枝后的微调与性能评估,帮助开发者在保持精度的同时显著提升模型推理速度。

weixin_29046035的博客 503

【Linux】Linux驱动开发:platform总线驱动

/定义在linux/module.h中使用时,参数如下:of:总线类型match_table:idtable数组首地址。

W__winter的博客 2758

Halcon 3D视觉实战:5步将线激光高度数据转为可分析的深度图与点云

本文详细介绍了如何利用Halcon平台将线激光高度数据转换为深度图与点云的5步实战方法。通过具体代码示例和工业检测案例(如锂电池胶水测量),帮助工程师高效处理3D视觉数据,实现从原始数据到三维可视化的完整技术链路。

weixin_29039773的博客 361

光学相干断层扫描(OCT)在 妇科诊断 中的革命性应用

尽管OCT在妇科的应用提供了许多潜在的优势,但它仍然是一个相对新的技术,并不是所有医疗机构都有能力提供这种类型的成像服务。随着技术的发展和医生对OCT的熟悉程度的提高,预计OCT将在妇科和其他医学领域中扮演越来越重要的角色。早期发现和准确的分类是提高治疗成功率的关键。虽然这是一个相对较新的应用领域,但OCT的非侵入性和高分辨率成像能力可能提供有价值的信息,以提高辅助生殖技术的成功率。:光学相干断层扫描(OCT)在阴道和外阴组织的评估中的应用正在逐渐展开,提供了一种新的方法来诊断和监测各种妇科疾病。

LiRongLu_的博客 1720

Linux平台设备框架驱动

平台设备框架(platform)是将一个驱动分为设备层和驱动层两个部分,通过总线模型将设备和驱动进行绑定。在系统中每注册一个设备,都会与之匹配一个驱动,同样的,每注册一个驱动也会与之匹配一个设备。通常 Linux 设备和驱动通常都需要挂接在一种总线上,对于本身依附于 PCI、 USB、 I2 C、 SPI 等的设备而言,这自然不是问题,但是在嵌入式系统里面, SOC 系统中集成的独立的外设控制器、挂接在 SOC 内存空间的外设等却不依附于此类总线。

weixin_44453694的博客 1652

R语言机器学习算法实战系列(十一)MLP算法分类器 (Multi-Layer Perceptrons)

本文介绍了多层感知器(MLP)分类算法的原理和计算步骤,并通过R语言实现MLP模型。MLP是一种前馈神经网络,包含输入层、隐藏层和输出层,通过激活函数引入非线性,利用前向传播和反向传播进行训练。文章详细描述了数据预处理、数据切割、模型构建、预测和评估等步骤,并提供了乳腺癌数据集(BreastCancer_clean.csv)的下载链接。通过R包如neuralnet和caret,读者可以逐步实现MLP模型,并评估其分类性能。

专注生信领域 933

【Linux】基于Imx6ull Pro开发板和platform_device+platform_driver框架的LED驱动设计以及上机测试

本文介绍了Linux内核驱动开发的三种设计方式:原始写法、总线设备驱动模型和设备树模型。重点阐述了基于BUS总线+platform_device+platform_driver框架的驱动开发流程,通过LED驱动实例展示了如何实现硬件资源、驱动逻辑和应用接口的三层解耦。具体包括:1)使用platform_device注册物理设备资源;2)编写字符设备驱动提供用户接口;3)通过platform_driver实现驱动与设备的匹配。

qq_73648789的博客 601

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Linux驱动开发——(九)platform设备驱动

介绍了Linux下的platform及其驱动实现。

wJen的博客 3219

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

_Linux驱动之Platform device/driver

[导读] 前文分析了Linux设备驱动的驱动模型,本文来聊聊Platform_driver/Platform_device这个类。做嵌入式Linux的驱动,这个也是绕不开的,所以来学习分析总结一下。注:代码分析基于linux-5.4.31为什么有Platform_driver前文谈到的总线驱动模型(注这个图是照着bootlin的文档绘制的):同时,根据代码分析其基础数据结构框架关系如下(UML关系...

weixin_39604685的博客 201

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

arm linux驱动 知乎_Linux驱动之Platform device/driver

[导读] 前文分析了Linux设备驱动的驱动模型,本文来聊聊Platform_driver/Platform_device这个类。做嵌入式Linux的驱动,这个也是绕不开的,所以来学习分析总结一下。注:代码分析基于linux-5.4.31为什么有Platform_driver前文谈到的总线驱动模型(注这个图是照着bootlin的文档绘制的):同时,根据代码分析其基础数据结构框架关系如下(UML关系...

weixin_35400275的博客 243

linux platform匹配机制,Linux驱动中的platform总线详解

platform总线是学习linux驱动必须要掌握的一个知识点。一、概念嵌入式系统中有很多的物理总线:I2c、SPI、USB、uart、PCIE、APB、AHBlinux从2.6起就加入了一套新的驱动管理和注册的机制platform平台总线,是一条虚拟的总线,并不是一个物理的总线。相比 PCI、USB,它主要用于描述SOC上的片上资源。platform 所描述的资源有一个共同点:在CPU 的总线上...

weixin_42591908的博客 392

Linux Platform Device and Driver的注册过程解析

来自: http://www.diybl.com/course/6_system/linux/Linuxjs/200871/129585.html 从 Linux 2.6 起引入了一套新的驱动管理和注册机制 :Platform_device 和 Platform_driver 。      Linux 中大部分的设备驱动,都可以使用这套机制 , 设备用 Platform_device 表示,驱动

JAVAweb学习 324

Linux Platform Device and Driver

Linux Platform Device and Driver  Linux Platform Device and Driver作者:Dongas日期:08-06-27 从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。Linux中大

share8888的专栏 573

基于platform机制的驱动模型

1、  哪些适用于plarform驱动?platform机制将设备本身的资源注册进内核,由内核统一管理,在驱动程序中使用这些资源时通过platform device提供的标准接口进行申请并使用。这样提高了驱动和资源管理的独立性,这样拥有更好的可移植性。platform机制的本身使用并不复杂,由两部分组成:platform_device和platfrom_driver。Platform driver

huabinbin110的专栏 561

30、Linux Platform Device and Driver

作者: Dongas 日期: 08-06-27   从 Linux 2.6 起引入了一套新的驱动管理和注册机制 :Platform_device 和 Platform_driver 。 Linux 中大部分的设备驱动,都可以使用这套机制 , 设备用 Platfo

WuHan MediaTek~~辉煌在于不懈的努力和拼搏! 619
上一篇: BIOS 的继任者 UEFI
下一篇: 新版linux系统设备架构中关于电源管理方式的变更
magod
博客等级 码龄20年 165粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值