USB驅動該怎麼編寫?在什麼環境下,用什麼語言,給點具體代碼

linux下usb驅動編寫(內核2.4)——2.6與此接口有區別2006-09-15 14:57我們知道了在Linux下如何去使用一些最常見的USB設備。但對於做系統設計的程序員來說,這是遠遠不夠的,我們還需要具有驅動程序的閱讀、修改和開發能力。在此下篇中,就是要通過簡單的USB驅動的例子,隨您一起進入USB驅動開發的世界。
USB骨架程序(usb-skeleton),是USB驅動程序的基礎,通過對它源碼的學習和理解,可以使我們迅速地了解USB驅動架構,迅速地開發我們自己的USB硬件的驅動。
USB驅動開發
在掌握了USB設備的配置後,對於程序員,我們就可以嘗試進行一些簡單的USB驅動的修改和開發了。這一段落,我們會講解一個最基礎USB框架的基礎上,做兩個小的USB驅動的例子。
USB骨架
在Linux kernel源碼目錄中driver/usb/usb-skeleton.c為我們提供了一個最基礎的USB驅動程序。我們稱為USB骨架。通過它我們僅需要修改極少的部分,就可以完成一個USB設備的驅動。我們的USB驅動開發也是從她開始的。
那些linux下不支持的USB設備幾乎都是生產廠商特定的產品。如果生產廠商在他們的產品中使用自己定義的協議,他們就需要為此設備創建特定的驅動程序。當然我們知道,有些生產廠商公開他們的USB協議,並幫助Linux驅動程序的開發,然而有些生產廠商卻根本不公開他們的USB協議。因為每一個不同的協議都會產生一個新的驅動程序,所以就有了這個通用的USB驅動骨架程序,它是以pci骨架為模板的。
如果你準備寫一個linux驅動程序,首先要熟悉USB協議規範。USB主頁上有它的幫助。一些比較典型的驅動可以在上面發現,同時還介紹了USB urbs的概念,而這個是usb驅動程序中最基本的。
Linux USB驅動程序需要做的第一件事情就是在Linux USB子系統裡註冊,並提供一些相關信息,例如這個驅動程序支持那種設備,當被支持的設備從系統插入或拔出時,會有哪些動作。所有這些信息都傳送到USB子系統中,在usb骨架驅動程序中是這樣來表示的:

USB CONNECTOR  USB CONNECTOR  USB CONNECTOR

您可能也會喜歡…