1. 程式人生 > >驅動開發感悟

驅動開發感悟

嵌入式 驅動

設備(device),驅動(device_driver)以及總線(bus_type)是Linux設備驅動模型的三要素。

總線將設備和驅動進行綁定。在系統註冊一個設備的時候,會尋找與之匹配的驅動,同樣,在系統註冊一個驅動的時候,會尋找與之匹配的設備,而匹配工作由總線完成。在設備和驅動匹配成功後,會調用驅動的probe函數來探測設備的寄存器資源,中斷,DMA,時鐘,同時初始化類(class)及其操作函數集,最後註冊該類。

類指的是具有共同屬性和功能的設備集。

比較常見的類設備有:v4l2,rtc,tty,input,alsa,misc等等。

下邊是驅動開發的主要內容:

1 搭建整個驅動框架,即實現probe函數,remove函數以及device_driver 結構體的dev_pm_ops成員函數。

2 實現驅動控制接口和數據交互接口。上述接口與具體的類設備密切相關,比如tty驅動需要實現tty_operations,網卡驅動需要實現net_device_ops,rtc驅動需要實現rtc_class_ops。

驅動開發感悟