linux字元裝置學習筆記(三)

2021-10-12 07:10:32 字數 1285 閱讀 8186

核心中用乙個結構體struct cdev來表示乙個字元裝置struct cdev cdev,這樣定義後,cdev就代表乙個字元裝置

字元裝置的載入函式一般完成裝置號和裝置的註冊

裝置號註冊register_chrdev_reg

裝置註冊cdev_add

字元裝置的解除安裝函式unregister_chrdev_region一般完成裝置號和裝置的登出

裝置登出cdev_del

裝置號登出unregister_chrdev_reg

**示例

#include

#include

struct cdev cdev;

//定義乙個字元裝置

static

int char_major =

250;

//主裝置號

static

int char_mintor =0;

//次裝置號

struct file_operation fops =

//載入函式

static

int __init char_init

(void

)printk

("register_chrdev_region success\n");

//要先初始化init

csdv_init

(&cdev,

&fops)

; cdev.ower = this_module;

//表示這個結構體在那個模組中

//在add

result =

cdev_add

(&cdev,dev,1)

;if(result)

printk

("cdev_add success\n");

return0;

}//解除安裝函式

static

void __exit char_exit

(void

)module_init

(char_init)

;module_exit

(char_exit)

;module_license

("gpl"

);

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

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

Linux 驅動學習筆記 字元裝置驅動模板 一

驅動入口函式 static int init init void 驅動出口函式 static void exit exit void 將上面兩個函式指定為驅動的入口和出口函式 module init init module exit exit module license gpl 新增協議 modu...

Linux學習 LED字元裝置驅動

應用層去呼叫一些介面函式時,會進入核心,驅動也是核心的一部分。以c庫函式中的open函式為例,open函式的實現繪製行一條swi val指令,執行之後會引發異常 核心的第一層 核心的系統呼叫介面。系統呼叫介面會根據發生異常的原因呼叫不同的異常處理函式,比如sys open函式 核心的第二層 虛擬檔案...