linux裝置驅動筆記一

2021-06-08 17:51:26 字數 868 閱讀 8173

關於linux驅動,可以說是一灘深水,在沒有高人指點的情況下,學起來感覺額外費勁。

還好,這幾天算是有一點進步吧,在這裡先記下來。

以前,總提到裝置模型這個東西,但我當時其實並不了解裝置模型是什麼東西。直到最近....

所謂linux裝置驅動模型,應該從linux2.6核心說起,2.4核心是沒有這麼乙個概念的,我的

理解是這樣子的。我們接觸過很多,各種linux裝置驅動,如字元裝置,混雜裝置等等。直接註冊

進系統就可以用了,這些都不涉及驅動模型這一概念。所謂驅動模型,應該是為了做到更好的跨

平台吧,才引入的乙個東東。怎麼說呢?

首先,裝置模型涉及到三個概念:匯流排,裝置,驅動。這裡面涉及註冊,探測,匹配等等。在我

研究的過程中,又涉及到一些問題。我暫時的理解是這樣子的,驅動是匯流排的驅動,所謂註冊驅動

,實質上是註冊乙個匯流排的驅動,如平台匯流排,pci匯流排。而裝置,指的是真正的硬體裝置。要知道,

在我們以前的linux驅動當中,如字元裝置,混雜裝置都只有註冊裝置這一說法,沒有註冊驅動這一

說法的。只有在涉及到匯流排的驅動中,才有註冊驅動這一說法,如pci ,iic,platform等等。

但是,是先註冊驅動,還是先註冊裝置呢?經過研究,在系統初始化的時候應該是初始化了裝置,

後面載入裝置的時候應該也載入了裝置,註冊驅動的時候也載入了驅動。所以誰先誰後,看來沒有那麼

簡單的答案。這裡有涉及鍊錶,裝置鍊錶,最開始,系統初始化初,這個鍊錶如何建立的呢?

其次,裝置模型是一顆樹,2.6核心才有的樹。一顆有匯流排,驅動和裝置組成的葉繁枝茂的大樹。

這課樹,最直接的體現就是根部目錄下的/sys這個資料夾,更確切的說應該是這個虛擬檔案系統。可以

用命令檢視這顆樹:tree /sys.

linux裝置驅動筆記

雖然並不做linux有關的東西,但是記錄下點點滴滴,以備不時之需 驅動程式的編譯 make 驅動程式按模組安裝 inmod ko 執行這個命令之前首先要獲得root許可權,否則會報錯,1 operation not permmitt 檢視模組安裝情況 lsmod 解除安裝相關模組 rmmod 安裝或...

Linux裝置驅動筆記 字元裝置驅動程式

關鍵字 編寫linux字元裝置驅動程式 linux提供了幾種註冊字元裝置的方式。如下 include include include include define dev major 100 define dev name test static intmyopen struct inode ino...

字元裝置驅動筆記

在所有linux裝置驅動中,字元裝置驅動最為基礎,本筆記將講解linux字元裝置驅動的結構,並解釋其主要組成部分的程式設計方法。cdev結構 struct cdev cdev結構體的dev t成員定義了裝置號,為32位,其中12bit為主裝置號,20bit為次裝置號。使用如下巨集可以從dev t獲得...