驅動學習 字元裝置驅動總結

2021-09-27 11:40:54 字數 997 閱讀 4329

字元裝置是 3 大類裝置(字元裝置、塊裝置和網路裝置)中較簡單的一類裝置,其驅動程式中完成的主要工作是初始化、新增和刪除 cdev 結構體,申請和釋放裝置號,以及填充file_operations結構體中的操作函式,實現file_operations結構體中的read()、write()和ioctl()等函式是驅動設計的主體工作。

static int demo_open (struct inode *inodp, struct file *filp)

ssize_t demo_read (struct file *filp, char __user *buf, size_t cnt, loff_t *fpos)

ssize_t demo_write (struct file *filp, const char __user *buf, size_t cnt, loff_t *fpos)

/*由上層的close呼叫*/

static int demo_release (struct inode *inodp, struct file *filp)

const struct file_operations fops = ;

static int demo_init(void)

else

class_create(this_module, devname);

cdev_init(&sculldev[i].cdev, &fops);

ret = cdev_add(&sculldev[i].cdev, devnum, 1);

/*裝置檔案的建立*/

device = device_create(class, null, devnum, null, "scull%d", i);

}module_init(demo_init);

static void demo_exit(void)

module_exit(demo_exit);

module_license("gpl");

字元裝置驅動框架學習總結

struct cdev dev t dev 裝置號,32位。高12位為主裝置號,地20位為次裝置號。使用下面巨集獲取主次裝置號 major dev t dev minor dev t dev 由主次裝置號生成裝置號 mkdev int major,int minor 2 struct file op...

裝置驅動例項 字元裝置驅動

在整個linux裝置驅動學習中,字元裝置驅動較為基礎。通過對它的學習,對裝置驅動進一步加深了解 cdev 結構體struct cdev 講下比較重要的成員變數 dev t dev 定義了32位的裝置號,其中12位是主裝置號,20位是從裝置號。獲取主裝置號 major dev t dev 獲取從裝置號...

驅動 linux裝置驅動 字元裝置驅動開發

preface 前面對linux裝置驅動的相應知識點進行了總結,現在進入實踐階段!linux 裝置驅動入門篇 linux 裝置驅動掃盲篇 fedora下的字元裝置驅動開發 開發乙個基本的字元裝置驅動 在linux核心驅動中,字元裝置是最基本的裝置驅動。字元裝置包括了裝置最基本的操作,如開啟裝置 關閉...