關於如何編寫linux裝置驅動

2021-09-12 13:48:13 字數 516 閱讀 4251

關於如何編寫linux裝置驅動

1)首先確定硬體介面使用的匯流排,然後確定要實現的功能,是網絡卡、sensor還是什麼,2)再確定對上層應用暴露的介面, 從而選擇子系統,例如iio、input子系統等。由於linux只有字元裝置、塊裝置、網路裝置三種裝置,其實iio、input子系統都是字元裝置,只是它們幫你封裝好了字元裝置的file_operations和major裝置號了,另外提供統一的sysfs介面(一類sysfs介面)。你只需要按照子系統要求註冊進子系統就行。子系統就像應用和你驅動之間的framework中間層,它幫你處理了很多通用的功能。另外自己再加入一些specific的sysfs介面即可。

確定了上面這些後,你就可以找到對應的例子去抄(參考)了。說白了,linux 核心設計者已經給你搭好了大的框架,你所要思考框架的東西並不多,你需要的是熟悉核心提供了什麼框架子系統,如何使用。

什麼樣的bus,決定你呼叫什麼匯流排api去訪問硬體,什麼樣的功能決定你用什麼樣的子系統來暴露介面給上層應用使用。

另外我的免費的linux各種驅動開發課程如下:

編寫Linux裝置驅動

核心版本 2.4.22 閱讀此文的目的 學會編寫linux裝置 驅動。閱讀此文的方法 閱讀以下2個 檔案 hello.c,asdf.c。此文假設讀者 已經能用c語言編寫linux應用程式,理解 字元裝置檔案,塊裝置檔案,主裝置號,次裝置號 會寫簡單的shell指令碼和makefile。1.hello...

如何編寫Linux裝置驅動程式

感謝 上海一九四三啊 李大屌 reference 序言linux是unix作業系統的一種變種,在linux下編寫驅動程式的原理和思想完全類似於其他的unix系統,但它dos或window環境下的驅動程式有很大的區別。在linux環境下設計驅動程式,思想簡潔,操作方便,功能也很強大,但是支援函式少,只...

如何編寫雜項裝置驅動

1.1 註冊雜項裝置 int misc register struct miscdevice misc 標頭檔案 include 功能 註冊乙個雜項裝置 引數 misc 雜項裝置的核心結構指標,至少已經實現minor,name,fops三個成員。返回值 0,表示註冊成功 負數,註冊失敗。說明 註冊成...