字元裝置驅動模型

2021-08-03 14:55:13 字數 872 閱讀 1880

字元裝置是指在i/o傳輸過程中以字元為單位進行傳輸的裝置,例如鍵盤,印表機等。

cdev結構體:(描述乙個字元裝置)

struct cdev

linux核心提供的一組函式用於操作cdev結構體:

void cdev_init(...)

//初始化cdev成員,建立cdev與file_operations的連線

struct cdev *cdev_alloc(void)

//動態申請乙個cdev記憶體

void cdev_put(...)

int cdev_add(...)

//新增乙個cdev

void cdev_del(...)

//刪除乙個cdev

在呼叫cdev_add()向系統註冊字元裝置之前,要先呼叫register_chrdev_region或者alloc_chrdev_region()向系統申請裝置號;

在呼叫cdev_del()向系統登出字元裝置之後,要呼叫unregister_chrdev_regin()來釋放原先申請的裝置號;

file_operations結構體:

file_operations結構體中的成員函式是字元裝置驅動程式設計的主體內容,是字元裝置驅動與核心的介面,是使用者空間對linux進行系統呼叫的最終落實者。

struct file_operations(主要成員)

linux字元裝置驅動的組成:

1:字元裝置驅動模組載入和解除安裝函式

2:字元裝置驅動中的file_operations結構體中成員函式

由於核心空間與使用者空間的記憶體不能直接互相訪問,因此借助了函式copy_from_user()完成使用者空間到核心空間的拷貝,以及copy_to_user()完成核心空間到使用者空間的拷貝。

字元裝置驅動模型

1.裝置描述結構cdev 驅動模型種類繁多,這就需要我從眾多的模型中提取出他們的一些共性 a.驅動初始化 a.1 分配裝置描述結構 a.2 初始化裝置描述結構 a.3 註冊裝置描述結構 a.4 硬體初始化 b.實現裝置操作 c.驅動登出 裝置描述結構 在任何一種驅動模型中,裝置都會用的核心中的一種結...

Linux 字元裝置驅動模型

一。使用字元裝置驅動程式 1.編譯 安裝驅動 在linux系統中,驅動程式通常採用核心模組的程式結構來進行編碼。因此,編譯 安裝乙個驅動程式,其實質就是編譯 安裝乙個核心模組 2.建立裝置檔案 通過字元裝置檔案,應用程式可以使用相應的字元裝置驅動程式來控制字元裝置。建立字元裝置檔案的方法一般有兩種 ...

裝置驅動模型

linux裝置模型中三個很重要的概念就是匯流排 裝置和驅動,即bus,device和driver。它們分別對應的資料結構分別為struct bus type,struct device和struct device driver。struct device 操作函式 註冊 int device reg...