日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux设备驱动模型概述(Linux device driver model overview)

發布時間:2025/4/16 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux设备驱动模型概述(Linux device driver model overview) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

平臺(platform)設備和平臺驅動是連接到平臺總線(bus)的linux驅動模型接口,總線將設備和驅動綁定,這個偽總線(platform bus)以最小的基礎結構被用來連接設備到總線上。在系統每注冊一個設備時,會尋找與之匹配的驅動;相反,在系統每注冊一個驅動時,會尋找與之匹配的設備,而匹配由總線來完成。

平臺設備通常作為系統中自治實體(autonomous entities)出現,平臺設備給出驅動綁定使用的名字和資源列表,如地址和IRQ。

?

struct platform_device {//平臺設備

?????? const char????? *name;//驅動使用此name和設備樹中的對比來進行綁定

?????? int????????? id;//設備實例號,-1表示此設備只有一個實例

?????? bool?????? id_auto;

?????? struct device? dev;

?????? u32???????? num_resources;

?????? struct resource????? *resource;

?

?????? const struct platform_device_id?? *id_entry;

?????? char *driver_override; /* Driver name to force a match */

?

?????? /* MFD cell pointer */

?????? struct mfd_cell *mfd_cell;

?

?????? /* arch specific additions */

?????? struct pdev_archdata??? archdata;

};

平臺驅動遵循提供比如probe()和remove()方法的標準驅動模型約定。驅動綁定由驅動core自動執行,驅動和設備之間匹配后會調用驅動的probe(),如果Prebe()成功,驅動和設備將會被成功綁定。

?

當注冊設備時,將檢查總線上的驅動是否匹配,由下面三種不同的方式去匹配:

  • 當注冊設備時,將檢查該總線的驅動是否匹配,平臺設備應該在系統引起期間盡早注冊。
  • 當驅動使用platform_driver_register()注冊時,將檢查總線上所有未綁定的。驅動通常在引導過程中稍后注冊,或通過加裝模塊時注冊。
  • 像使用platform_driver_register()注冊一樣用platform_driver_probe()來注冊,除非另一設備注冊時不會調用驅動的platform_driver_probe()。
  • ?

    多個平臺驅動實例使用相同的平臺驅動實現。可參閱Documentation\driver-model\platform.txt和include\linux\platform_device.h獲得更多的信息

    總結

    以上是生活随笔為你收集整理的Linux设备驱动模型概述(Linux device driver model overview)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。