Linux裝置驅動之字元裝置 1 建立字元裝置

2021-09-11 07:13:21 字數 1124 閱讀 5607

建立乙個字元裝置並在/dev目錄下建立節點的基本步驟:

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define hello_major     250

#define hello_minor 0

#define count_of_device 1

struct cdev cdev;

dev_t dev = 0;

struct file_operations hello_fops = ;

struct class *my_class;

static void char_reg_setup_cdev(void)

/*********************** 自動建立節點 **************************/

/*** 建立裝置類,用於device_create()的呼叫,

* 並使該裝置類在解除安裝驅動時,能呼叫class_destroy()刪除

**/my_class = class_create(this_module, "farsight_class");

if(is_err(my_class))

/*** 在/dev目錄下建立裝置,命名為hello,並將之與建立的類關聯

**/

device_create(my_class, null, devno, null, "hello");

}static int __init hello_init(void)

/*** 建立節點

**/

char_reg_setup_cdev();

printk(kern_info "char device registered\n");

return 0;

}static void __exit hello_exit(void)

module_init(hello_init);

module_exit(hello_exit);

module_license("gpl");

Linux裝置驅動之《字元裝置驅動》

linux裝置中最大的特點就是裝置操作猶如檔案操作一般,在應用層看來,硬體裝置只是乙個裝置檔案。應用程式可以像操作檔案一樣對硬體裝置進行操作,如open close read write 等。下面是乙個字元裝置驅動程式的簡單實現test.c 模組分析 1.初始化裝置驅動的結構體 struct fil...

Linux裝置驅動之字元裝置驅動

一 linux裝置的分類 linux系統將裝置分成三種基本型別,每個模組通常實現為其中某一類 字元模組 塊模組或網路模組。這三種型別有 字元裝置 字元裝置是個能夠像位元組流 類似檔案 一樣被訪問的裝置,由字元裝置驅動程式來實現這種特性。字元裝置可以通過檔案系統節點來訪問,比如 dev tty1等。這...

Linux裝置驅動之字元裝置(三)

在linux裝置驅動之字元裝置 一 中學習了裝置號的構成,裝置號的申請與釋放。在linux裝置驅動之字元裝置 二 中學習了如何建立乙個字元裝置,初始化,已經註冊到系統中和最後釋放該字元裝置。本節將結合前兩節學到的知道,編寫乙個簡單的字元裝置驅動。最後總結一下字元裝置驅動的模型。include inc...