溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于如何編寫linux設備驅(qū)動

發(fā)布時間:2020-07-30 12:27:34 來源:網(wǎng)絡 閱讀:171 作者:GaoNeil 欄目:移動開發(fā)

關于如何編寫linux設備驅(qū)動

1)首先確定硬件接口使用的總線,
2)然后確定要實現(xiàn)的功能,是網(wǎng)卡、sensor還是什么?再確定對上層應用暴露的接口, 從而選擇子系統(tǒng),例如iio、input子系統(tǒng)等。由于linux只有字符設備、塊設備、網(wǎng)絡設備三種設備,其實iio、input子系統(tǒng)都是字符設備,只是它們幫你封裝好了字符設備的file_operations和Major設備號了,另外提供統(tǒng)一的sysfs接口(一類sysfs接口)。你只需要按照子系統(tǒng)要求注冊進子系統(tǒng)就行。子系統(tǒng)就像應用和你驅(qū)動之間的framework中間層,它幫你處理了很多通用的功能。另外自己再加入一些specific的sysfs接口即可。
確定了上面這些后,你就可以找到對應的例子去抄(參考)了。說白了,linux 內(nèi)核設計者已經(jīng)給你搭好了大的框架,你所要思考框架的東西并不多,你需要的是熟悉內(nèi)核提供了什么框架子系統(tǒng),如何使用。
什么樣的bus,決定你調(diào)用什么總線API去訪問硬件,什么樣的功能決定你用什么樣的子系統(tǒng)來暴露接口給上層應用使用。

關于具體的寫linux驅(qū)動的方法、技巧和注意事項,歡迎觀看我的《如何編寫linux設備驅(qū)動》的視頻:
https://edu.51cto.com/course/17132.html

另外我的相關培訓視頻請看:
歡迎觀看我發(fā)布的各個課程: https://edu.51cto.com/lecturer/8896847.html

另外我的免費的linux各種驅(qū)動開發(fā)課程如下:
https://edu.51cto.com/course/17138.html

另外注意:
即原則,內(nèi)核只提供功能和接口,不負責策略和配置,策略和配置應該有具體應用提供。
天下代碼一大抄,鼓勵大家理解的方式抄好的代碼例子。
對各個linux kernel子系統(tǒng)的api函數(shù)和重要結(jié)構體的熟悉是必須的。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI