為了解決這種驅動**和裝置資訊耦合的問題,linux 提出了裝置驅動模型。裝置驅動模型中包括匯流排,驅動,裝置。
在裝置驅動模型中,引入匯流排的概念可以對驅動**和裝置資訊進行分離。對於i2c、spi、usb這類常見的物理匯流排來說,linux核心回自動建立與之對應的驅動匯流排,因此i2c裝置,spi裝置,usb裝置自然是註冊掛載在相應的匯流排上。
物理匯流排:晶元與各個功能外設之間傳送資訊的公共通訊幹線,其中又包括資料匯流排、位址匯流排和控
制匯流排,以此來傳輸各種通訊時序。
驅動匯流排:負責管理裝置和驅動。制定裝置和驅動的匹配規則,一旦匯流排上註冊了新的裝置或者是新
的驅動,匯流排將嘗試為它們進行配對。
但是實際專案中,比如led,rtc,beep,key這類結構簡單的裝置,它們的控制不需要時序,它們沒有相應的物理匯流排。所以linux核心不會為它們建立驅動匯流排。為了是這部分裝置的驅動開發也能夠遵循裝置驅動模型,linux核心引入了一種虛擬的匯流排——平台匯流排(platform bus).
Linux裝置驅動模型
核心版本 2.6.29 裝置驅動模型框架是linux驅動程式設計的基礎。它通過kobject,kset,ktype等底層資料結構將bus type,device,device driver 等高層資料結構組織起來,形成乙個層次 分類清晰的驅動模型。優點如下 1.重用。將物件抽象為匯流排 驅動 裝置三...
linux驅動模型 裝置
thebasic device structure see the kerneldoc for the struct device.programminginte ce 檢測到裝置的匯流排驅動使用如下函式將裝置註冊到核心 int device register struct device dev 匯...
Linux裝置驅動模型
一 裝置驅動模型 驅動模型提供硬體的抽象,核心可以使用該抽象完成很多重複的工作。這些抽象主要有 電源管理,即插即用裝置支援,與使用者空間的通訊 二 核心資料結構 kobject 通過它可以以樹狀結構來管理裝置 kobj type 用來表示kobject的屬性 三 三大元件 匯流排 裝置 驅動 匯流排...