当前位置: 首页 > article >正文

linux驱动—注册驱动分析

         这篇博客linux驱动—自己注册一个总线,如果要分析驱动就要从driver_register上面开始分析,因为总线就是调用这个函数,把自己的驱动注册进去
       

        第一步:先判断要注册的这个总线在不在 。         为什么判断这个dev->bus->p这个成员在不在,就可以判断总线在不在初始化了?,因为在注册驱动的时候就已经绑定了。如果没有绑定就是没有初始化

 

        接下来会判断这三个函数释放存在,有些时候都回去执行,就会有一些问题,所以都存在会打印广告

        接下来就是核心代码了

   

进入到bus_add_driver函数里面     

         在bus_add_driver函数里面,第一不,会将驱动的私有数据和驱动关联起来,和总线注册的时候关联总线和私有数据一样的

        kobj设置成了kest 会在/sys/bus/mybus/drivers目录下创建驱动对应的目录,因为把kobj设置成了kset

        最后调用在这个函数把驱动加载到链表里面去。剩下的那些不是注册驱动有关的

                 

下面是bus_add_driver源码

解决了一个问题:为什么在注册总线的时候drivers_autoprobe = 1,就会自动匹配

        原因在这里,如果drivers_autoprobe是1,1满足条件,调用这个,自动匹配驱动和函数


http://www.kler.cn/news/368143.html

相关文章:

  • 【golang】学习文档整理
  • Flink-cdc Schema Evolution 详解
  • Ajax:XMLHttpRequest
  • 手机柔性屏全贴合视觉应用
  • coze案例|标准证件照(下)–工作流+Bot设计
  • ️ Vulnhuntr:利用大型语言模型(LLM)进行零样本漏洞发现的工具
  • 使用Python计算相对强弱指数(RSI)进阶
  • HarmonyOS NEXT 应用开发实战(八、知乎日报List列表下拉刷新及上滑加载更多分页的实现)
  • Vue引入高德地图自定义信息窗体绑定点击事件无效解决方案
  • anaconda 创建环境失败 解决指南
  • 【刷题10】2024.10.26
  • Spark 广播变量(Broadcast Variable)原理及源码分析
  • 绝了,这款播放器让发烧友疯狂种草,堪称音乐神器
  • 力扣876:链表的中间结点
  • 安全知识见闻-网络安全热门证书
  • SpringBoot技术栈在宠物用品交易网站中的应用
  • php后端学习,Java转php
  • 智能合约开发中的LP分红系统
  • 第四期书生大模型实战营(【入门岛】- 第1关 | Linux基础知识)
  • python基础知识点笔记(全)
  • 一个开源的跨平台UI框架,可使用Web技术构建跨平台桌面应用程序
  • 鼠标移入高亮边框效果
  • 在Spring Boot框架下的Java异常处理
  • 【入门级教程】MySQL:从零开始的数据库之旅
  • 2024 Rust现代实用教程:变量与常见数据类型
  • PG数据库之索引详解