1. 程式人生 > >linux 中的3類驅動程式

linux 中的3類驅動程式

1.字元裝置驅動

I/O傳輸過程中以字元為單位進行傳輸的裝置。如鍵盤。

 write :操作就是從應用程式接收資料送到硬體。

read :操作就是從硬體讀取資料並交給應用程式。

ioctl: 應用程式提供對硬體行為的控制

open:應用程式開啟裝置時對裝置進行初始化

release :應用程式關閉裝置時的操作

static struct file_operations my driver_fops={

owner :THIS_Module,

write:mydriver_write,

read:mydriver_read,

ioctl:mydriver_ioctl,

open: mydriver_open,

release:mydriver_release,

};

module_exit() 用於向核心宣告退出。

字元裝置驅動程式開發基本步驟如下:

1.確定主裝置號和次裝置號

2.實現字元驅動程式,先實現file_operations 結構體,然後實現初始化函式並註冊字元裝置,然後實現銷燬函式並釋放字元裝置。

3.建立裝置檔案節點。

塊裝置驅動

塊裝置只能以塊為單位接收輸入返回輸出。

塊裝置需要緩衝區。

塊裝置可以隨機訪問。字元裝置只能順序讀寫。

struct block_device_operations

int(*open)(struct inode *,stuct file*);

int (*release)

int(*ioctl)

int(*unlock_ioctl)

...

....

網路裝置驅動

net_device 表示網路裝置介面。

網路裝置媒介層

網路裝置驅動層

網路裝置介面層

網路協議介面層