linux驱动匹配规则
时间: 2023-08-21 21:03:56 浏览: 117
HOWTO-linux.rar_linux 驱动
回答: 在Linux驱动模型中,设备和驱动之间的匹配是通过match函数来实现的。match函数是platform的match函数,它用于完成设备和驱动之间的匹配。总线使用match函数来根据注册的设备来查找对应的驱动,或者根据注册的驱动来查找相应的设备。每一条总线都必须实现此函数。match函数有两个参数:dev和drv,分别为device和device_driver类型,即设备和驱动。在match函数中,首先尝试OF风格的匹配,然后尝试ACPI风格的匹配,接着尝试根据id table进行匹配,最后回退到驱动名称的匹配。\[1\]
在Linux驱动模型中,还有一个重要的概念是设备树(device tree),它是配置板级信息的地方。Linux驱动模型分为设备、驱动和总线三个部分,设备树是管理这些部分的基础。设备树是一棵树状结构,用于描述硬件设备的信息。了解和理解设备树是正确开发硬件驱动的前提。\[2\]
在编写驱动时,我们会使用一些注册函数,比如platform_driver_register、spi_register_driver、i2c_add_driver等。这些函数用于将驱动和设备进行匹配,并调用probe函数。以platform_driver为例,设备驱动的匹配是通过设备和驱动的match函数来实现的。\[3\]
综上所述,Linux驱动的匹配规则是通过match函数来实现的,该函数根据设备和驱动的信息进行匹配,以确定设备和驱动之间的对应关系。设备树是配置板级信息的地方,它是管理设备、驱动和总线的基础。在编写驱动时,我们使用注册函数将驱动和设备进行匹配,并调用相应的函数进行处理。
#### 引用[.reference_title]
- *1* [platform设备驱动](https://blog.csdn.net/weixin_52849254/article/details/127811193)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [Linux设备驱动和设备匹配过程](https://blog.csdn.net/tiantianhaoxinqing__/article/details/124843344)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文