簡單分析USB設備驅動框架(秒懂~)

2022年09月27日18:51:10 科技 1709

在生活、工作中經常會接觸到USB設備,如鼠標、鍵盤、攝像頭、可移動硬盤、掃碼槍等。這些設備通過USB接口連接到電腦上後,電腦會立刻提示「檢測到新硬件...」、安裝驅動等。這裡需要強調下USB設備使用的是USB總線,window或Linux內核中都會自帶usb總線驅動,所以接上USB設備後,主機能夠立刻檢測到,提醒需要安裝設備驅動是指安裝USB設備驅動。

USB設備驅動使用USB總線,所以很多操作由USB總線驅動幫我們完成了,我們只需要的按照總線、設備、驅動框架來實現USB設備的驅動既可。USB設備數據的讀寫操作由總線驅動現在,我們可以直接使用總線讀取到的數據,然後解析這些數據的含義、再進行相關的操作就可以了(這裡需要注意的一點是USB總線驅動只提供USB設備的讀寫操作函數,這函數是通用的,即裏面的數據的含義總線驅動並不知道)。

USB設備驅動的框架圖下,具體的代碼可以參考內核中的/drivers/hid/usbhid/usbmouse.c

分配/設置usb_driver結構體,填充裏面的.id_table、.probe、.disconnect成員。
調用usb_register把usb_driver結構體註冊到內核中。

static struct usb_driver usbtouch_driver = {
	.name		= "myusb",
	.probe		= usbtouch_probe,
	.disconnect	= usbtouch_disconnect,
	.id_table	= usbtouch_devices,
};
 
static int __init usbtouch_init(void)
{
	return usb_register(&usbtouch_driver);
}
 
static void __exit usbtouch_cleanup(void)
{
	usb_deregister(&usbtouch_driver);
}

struct usb_driver中的id_table成員是用與和usb設備進行匹配的選項,表示這個驅動支持的設備。

.probe成員為函數指針,就是在設備和驅動匹配成功的時候執行。

.disconnect成員也為函數指針,在設備和驅動關聯成功後再斷開執行,如拔了USB設備或卸載USB設備驅動。


更多linux內核視頻教程文檔資料免費領取後台私信【內核】自行獲取.

簡單分析USB設備驅動框架(秒懂~) - 天天要聞

簡單分析USB設備驅動框架(秒懂~) - 天天要聞

簡單分析USB設備驅動框架(秒懂~) - 天天要聞

科技分類資訊推薦

OPPO哪款手機值得買?2025年OPPO值得買的手機盤點! - 天天要聞

OPPO哪款手機值得買?2025年OPPO值得買的手機盤點!

OPPO作為國內知名的手機廠商,產品的售後服務以及質量值得信賴,選擇OPPO手機的好處是線下維修極其方便,因為線下有很多OPPO的實體店,部分OPPO手機好享受免費貼膜和免費清理的服務。想要入手OPPO手機的朋友,可以看看下面這些機型(不包
OPPP「實力派」旗艦,16GB+512GB跌1811元收尾:三主攝+旗艦芯片 - 天天要聞

OPPP「實力派」旗艦,16GB+512GB跌1811元收尾:三主攝+旗艦芯片

沒有哪位小姐姐拍照時不想把自己拍得美美的,但這需要一定的技術,而技術可以學習也可以交給手機來完成。現在的智能手機拍照已經優秀多了,對於用戶而言只需打開相機按下快門即可,根本不需要掌握什麼攝影技巧,白平衡、焦距、曝光、光圈等等專業參數都不需要
榮耀坐不住了,Magic7Pro無奈一跌再跌,16GB+1TB+驍龍8至尊版 - 天天要聞

榮耀坐不住了,Magic7Pro無奈一跌再跌,16GB+1TB+驍龍8至尊版

近年來,手機幾乎成了我們生活中的「半快消品」,廠商們爭相推出新款,更新換代的速度快得令人咋舌。每天都能看到各種新款手機廣告、上市活動,彷彿只有不停地換新機,才能跟上時代的步伐。可是,面對這些頻繁迭代的產品,我常常會問自己:對於我們日常使用來
手機行業「新卷王」,7000mAh+8T旗艦屏+IP69,現已跌至1539元 - 天天要聞

手機行業「新卷王」,7000mAh+8T旗艦屏+IP69,現已跌至1539元

近年來,手機電池技術有了翻天覆地的變化。記得以前的手機,電池容量往往較小,一天下來電量就捉襟見肘,常常需要中途充電,讓人倍感焦慮。如今,隨着電池容量的大幅提升,手機的續航時間有了明顯改善,但很多人會擔心,大容量電池會不會讓機身變得沉重、臃腫
千元機「攪局者」,512GB頂配跌至1128元,連用四年流暢不卡頓 - 天天要聞

千元機「攪局者」,512GB頂配跌至1128元,連用四年流暢不卡頓

近年來,手機市場競爭愈發激烈,每個價位段都充斥着各種機型,從百元到千元,再到兩三千元檔,每個細分市場都有不少選擇。面對這種「廝殺」局面,我曾經覺得只有高價旗艦才值得購買,但現在看來,激烈競爭反而給了我們消費者更多超值選擇。即使是預算有限的朋
掌機要什麼AI功能?曝AMD新Z2系掌機芯片僅有一款帶有NPU - 天天要聞

掌機要什麼AI功能?曝AMD新Z2系掌機芯片僅有一款帶有NPU

搭載了Lunar Lake的微星掌機MSI Claw 8 AI+特地在命名中加入了「AI+」,並且在商品詳情頁及各類宣傳中也可以看到很多所謂的「AI」功能及AI算力的宣傳,但很顯然的是,對於Windows掌機的用戶和消費者來說,性能、性能調校、功耗、遊戲幀數才是這部分人群最為關心的問題。 目前Windows掌機大多採用AMD處理器,其還專為掌機開...
柯尼卡美能達獲「綠色先鋒企業」稱號 - 天天要聞

柯尼卡美能達獲「綠色先鋒企業」稱號

日前,憑藉在綠色低碳領域的持續創新與務實行動,柯尼卡美能達辦公系統(中國)有限公司榮膺由中環聯合(北京)認證中心有限公司所授予的「綠色先鋒企業」稱號。中環聯合(北京)認證中心有限公司,簡稱CEC,成立於2002年,由原國家環境保護總局批准設立,是國家認證認可監督管理委員會批准的綜合性認證機構,同時也是國內最早開...