裝置驅動模型第1節 平台 裝置 驅動2

2021-06-20 12:34:56 字數 1789 閱讀 7443

裝置:

(1)平台裝置(說白了就是

cpu

內部的乙個控制器,比如

i2c控制器

或是lcd

控制器等)

struct platform_device;

註冊裝置:intdevice_register(sruct device *dev)

登出裝置:voiddevice_unregister(struct device *dev);

(3)裝置屬性:

sysfs 中的裝置入口可有屬性. 相關的結構是:

struct device_attribute ;

這些屬性結構可在編譯時建立, 使用這些巨集:

device_attr(name, mode, show, store);

結果結構通過字首dev_attr_ 到給定名子上來命名. 屬性檔案的實際管理使用通常的函式對來處理:

int device_create_file(struct device *device, struct device_attribute *attr);

void device_remove_file(struct device *dev, struct device_attribute *attr);

struct bus_type 的 dev_attrs 成員指向乙個預設的屬性列表, 這些屬性給新增到匯流排的每個裝置建立.

(4)建立裝置例項:

建立裝置和建立匯流排基本一樣這裡只貼出示例程式:

#include

#include

#include

#include

#include

extern struct device       my_bus;

extern struct bus_type  my_bus_type;

static void my_dev_release(struct device *dev)

struct device my_dev = ;

static ssize_t zhouxh_show(struct device *dev,struct device_attribute *attr,char *buf)

static device_attr(dev, s_irugo, zhouxh_show, null);

static int __init my_device_init(void)

static void my_device_exit(void)

module_init(my_device_init);

module_exit(my_device_exit);

module_author("[email protected]");

module_license("dual bsd/gpl");

裝置驅動基礎1 裝置模型之匯流排,驅動,裝置

kobject,kset是裝置模型的基本結構體,裝置模型使用這兩個結構體來完成裝置的層次關係,但在實際的裝置驅動編寫中,我們基本上用不到kobject,kset這些結構體,是因為這些結構體又被嵌入到更大的結構體中,原因在於kobject,kset結構體只能表徵裝置的層次關係,但是乙個裝置的驅動,並不...

裝置驅動基礎1 裝置模型之匯流排,驅動,裝置

原文 kobject,kset是裝置模型的基本結構體,裝置模型使用這兩個結構體來完成裝置的層次關係,但在實際的裝置驅動編寫中,我們基本上用不到kobject,kset這些結構體,是因為這些結構體又被嵌入到更大的結構體中,原因在於kobject,kset結構體只能表徵裝置的層次關係,但是乙個裝置的驅動...

Linux 平台裝置驅動模型

linux 平台裝置驅動模型 一。平台匯流排概述 1.平台匯流排 platform bus 是linux2.6核心加入的一種虛擬匯流排,其優勢在於採用了匯流排的模型對裝置與驅動進行了管理,這樣提高了程式的可移植性 二。平台裝置 1.平台裝置使用structplatform device來描述 str...