Linux 平台裝置驅動模型

2022-08-31 09:00:07 字數 986 閱讀 9899

linux 平台裝置驅動模型

一。平台匯流排概述

1. 平台匯流排(platform bus)是linux2.6核心加入的一種虛擬匯流排,

其優勢在於採用了匯流排的模型對裝置與驅動進行了管理,這樣提高了程式的可移植性

二。平台裝置

1. 平台裝置使用structplatform_device來描述:

struct platform_device

const char *name; /*裝置名*/

intid;  /*裝置編號,配合裝置名使用*/

struct device dev;

u32 num_resources;

struct resource*resource;  /*裝置資源*/

struct resource

resource_size_t start;

resource_size_t end;

const char *name;

unsigned long flags;   /*資源的型別*/

struct resource *parent, *sibling, *child;

2. 註冊平台裝置

int platform_device_register(struct platform_device*pdev)

三。平台驅動

1. 平台驅動使用structplatform_driver描述:

struct platform_driver

int(*probe)(struct platform_device*);

int(*remove)(struct platform_device*);

2. 平台註冊使用函式

int platform_driver_register(struct platform_driver*)

Linux平台匯流排驅動裝置模型

platform匯流排是一種虛擬的匯流排,相應的裝置則為platform device,而驅動則為platform driver。linux 2.6的裝置驅動模型中,把i2c rtc lcd等都歸納為platform device。匯流排將裝置和驅動繫結,在系統每註冊乙個裝置的時候,會尋找與之匹配的...

linux核心的裝置驅動模型和平台裝置驅動

為了解決這種驅動 和裝置資訊耦合的問題,linux 提出了裝置驅動模型。裝置驅動模型中包括匯流排,驅動,裝置。在裝置驅動模型中,引入匯流排的概念可以對驅動 和裝置資訊進行分離。對於i2c spi usb這類常見的物理匯流排來說,linux核心回自動建立與之對應的驅動匯流排,因此i2c裝置,spi裝置...

Linux裝置驅動模型

核心版本 2.6.29 裝置驅動模型框架是linux驅動程式設計的基礎。它通過kobject,kset,ktype等底層資料結構將bus type,device,device driver 等高層資料結構組織起來,形成乙個層次 分類清晰的驅動模型。優點如下 1.重用。將物件抽象為匯流排 驅動 裝置三...