首页 > 其他分享 >platform驱动框架

platform驱动框架

时间:2024-07-25 15:31:52浏览次数:7  
标签:匹配 struct 框架 driver platform device 驱动

  目的: 进行驱动和设备分离,避免驱动的重复编写,使设备和驱动能够自由组合。

 platform文件分析:

 

结构体介绍:

     bus_type 定义的 platfor_bus_type总线:其中  platform_match 是匹配函数(四种匹配方式,匹配设备和驱动)

  plat_form_driver 描述驱动::其中的const struct of_device_id *of_match_table; 中描述匹配信息:如compatible进行匹配设备树 /

  platform_device 描述设备:其中 platform_device_id 描述设备信息(如:name)用于匹配驱动 /device/下有 name 文件生成

 

plat_form_driver : 用于连接设备树,识别硬件资源。

 

函数接口

int platform_driver_register (struct platform_driver *driver)
void platform_driver_unregister(struct platform_driver *drv)
//需要自定义实现的接口
static int xxx_probe(struct platform_device *dev)  //platform驱动开始后,第一个调用这个接口,因此字符驱动初始化在这里实现
static int xxx_remove(struct platform_device *dev) //驱动资源释放在这里实现

 

流程:

1. 设置 of_device_id 中的compatible变量

2. 设置 platform_driver 中的 .driver、 probe、remove接口

3. 实现 probe、remove 接口

4. 注册 platform_driver:platform_driver_register

2. 卸载 platfrom_driver: platform_driver_unregister

标签:匹配,struct,框架,driver,platform,device,驱动
From: https://www.cnblogs.com/zypprocess/p/18319464

相关文章

  • 【YashanDB数据库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIE
    问题现象客户的java日志中有如下异常信息:问题的风险及影响对正常的业务流程无影响,但是影响druid的mergesql功能(此功能会将sql语句中的字面量替换为绑定变量,然后将替换以后的sql视为同一个,然后用做执行性能统计)问题影响的版本与yashandb版本无关问题发生原因druid源码中在......
  • 49.TFT_LCD液晶屏驱动设计与验证(2)
    (1)Visio视图:(2)控制模块Verilog代码:moduletft_ctrl(inputclk_33M,inputreset_n,input[23:0]data_in,output[9:0]hang......
  • 卡夫卡(Kafka)框架详解:从背景到应用实践
    卡夫卡(Kafka)框架详解:从背景到应用实践引言        在大数据和分布式系统日益普及的今天,数据处理和消息传递成为了支撑复杂业务系统的关键基础设施。ApacheKafka,作为一个高性能的分布式消息队列系统,因其高吞吐量、低延迟和可扩展性,成为了众多企业和开发者首选的消息......
  • 胜未来:国内大模型+Agent应用案例精选,以及主流Agent框架开源项目推荐
    智胜未来:国内大模型+Agent应用案例精选,以及主流Agent框架开源项目推荐Agent是以大模型为核心的智能体,通过与用户对话的形式,来完成各种任务,它很像一个“人”。如果和人做类比,它应该具备以下能力:Agent的各个要素各个子模块:1.对话式Agent1.1月之暗面(MoonshotAI)-Kimi官方......
  • 智胜未来:国内大模型+Agent应用案例精选,以及主流Agent框架开源项目推荐
    智胜未来:国内大模型+Agent应用案例精选,以及主流Agent框架开源项目推荐Agent是以大模型为核心的智能体,通过与用户对话的形式,来完成各种任务,它很像一个“人”。如果和人做类比,它应该具备以下能力:Agent的各个要素各个子模块:1.对话式Agent1.1月之暗面(MoonshotAI)-Kim......
  • Spring框架配置扩展
    Spring框架的配置扩展是提高应用程序灵活性和可维护性的关键部分。通过不同的配置方法,我们可以更好地管理数据源、拆分配置文件、自动装配Bean以及控制Bean的作用域1.配置数据源数据源配置是Spring应用程序中的关键部分,它直接影响到数据库操作的性能和管理(1)使用proper......
  • 【Gin】架构的精妙编织:Gin框架中组合模式的革新实践与技术深度解析(下)
    【Gin】架构的精妙编织:Gin框架中组合模式的革新实践与技术深度解析(下)大家好我是寸铁......
  • ava 集合框架全解析:Collection vs Collections,Comparable vs Comparator,HashSet 工作
    Java中的集合框架是开发过程中不可或缺的一部分,但初学者常常会混淆其中的术语,特别是Collection和Collections。这篇博客将详细介绍它们之间的区别,并进一步探讨Comparable和Comparator、HashSet的工作原理,以及HashMap和Hashtable的区别。Collection和Collecti......
  • Known框架实战演练——进销存业务单据
    本文介绍如何实现进销存管理系统的业务单据模块,业务单据模块包括采购进货单、采购退货单、销售出货单、销售退货单4个菜单页面。由于进销单据字段大同小异,因此设计共用一个页面组件类。项目代码:JxcLite开源地址:https://gitee.com/known/JxcLite1.配置模块运行项目,在【系统......
  • 如何在新打开的页面中更新Chrome驱动程序并找到iram点击底部
    我正在使用selenium打开页面并单击底部,首先我使用以下代码打开页面并更改iram:driver.get(URL_1)driver.switch_to.frame('ifram1')单击此页面内的项目后,我定向到另一个页面,我需要单击按钮我无法使用driver.find_element(BY.XPATH)或driver.find_element......