字元裝置驅動 深入 linux cdev詳解

2021-09-07 04:54:11 字數 905 閱讀 5607

linux cdev詳解  

用cdev_add新增字元裝置驅動:

//

linux2.6中用cdev_add新增字元裝置驅動

//傳統的是直接使用register_chrdev

//新的方式,驅動初始化寫起來要繁瑣一點,但是好處是能夠根據需要控制cdev_add的裝置數量,且主裝置號不再完全受256個的限制。詳情可以參考2.6的核心**linux/fs/char_dev.c,以及上面引用的文章。

static

struct cdev *leds_cdev ;

static

int leds_major = xx ;//

static

int__init s3c24xx_leds_init()

else

//初始化並新增cdev結構體

cdev_init(leds_cdev , &s3c24xx_leds_fops );

leds_cdev->owner =this_module ;

leds_cdev->ops = &s3c24xx_leds_fops;

ret =cdev_add(leds_cdev , devno , leds_dev_count);

//class_create動態建立裝置的邏輯類,並完成部分欄位的初始化,然後將其新增到核心中。

//建立的邏輯類位於 /sys/class/。

leds_class = class_create(this_module, "

leds_class

"); //

/sys/class/下的類名

for (minor = 0; minor < 4 ; minor++)

//為簡化邏輯,出錯處理**略

}

深入淺出Linux裝置驅動之字元裝置驅動程式

linux下的裝置驅動程式被組織為一組完成不同任務的函式的集合,通過這些函式使得windows的裝置操作猶如檔案一般。在應用程式看來,硬體裝置只是乙個裝置檔案,應用程式可以象操作普通檔案一樣對硬體裝置進行操作,如open close read write 等。linux主要將裝置分為二類 字元裝置和...

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

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

字元裝置驅動

字元裝置驅動 概述 塊裝置 字元裝置以及網路裝置中塊裝置和網路裝置一般都會硬體配置完備,對於程式設計師而言,能夠更多操作的就是字元裝置。設定字元裝置的一般步驟 1.初始化硬體 2.定義fops file operations 3.申請cdev,掛載fops 3.加入cdev 函式cdev add 主...