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 主...