字元裝置驅動 2

2021-06-25 17:08:04 字數 941 閱讀 1597

大部分字元驅動設計三個重要的資料結構

struct file_operations

struct file

struct inode

一、檔案操作

在之前的一篇文章中已經有介紹了如何去生情字元裝置裝置號,但是沒有做任何的工作,也就只能寫乙個不能工作的字元裝置;

struct file_operations 結構域用來連線裝置與操作,實現系統呼叫。

重要字段介紹:

struct file_operations ;

結構還有很多的操作因為還沒有學會,就沒有多做介紹,(ioctl函式操作在2.6.35之後就變成了unlocked_ioctl、compat_ioctl其實作用也不是很大 也沒有做介紹,以後有機會再做介紹)

當open 與release置為null時 就以核心預設的方式進行開啟或者關閉,並且不會出錯,

當其他函式沒有被定義時候,應用程式呼叫會出錯。

下邊是乙個最重要的幾個裝置操作方法的定義。

struct file_operations ******_fops=;

二、file結構

這裡介紹的file結構並不是c語言中的file結構,兩者沒有任何關聯,struct file只是乙個核心的結構,每乙個開啟的檔案,都會對應乙個struct file結構,乙個檔案可以對應於不同的struct file結構

struct file ;

三、inode結構

linux核心使用inode結構表示乙個檔案,與file不同,file可以理解為用來表示檔案描述符的結構,乙個檔案可以對應很多的檔案描述符,而最後只會指向同乙個inode結構

struct inode ;

...};

四、file 結構 與inode結構**

字元裝置驅動 2

參考 宋寶華 linux裝置驅動開發詳解 嵌入式linux驅動開發教程 開發環境 ubuntu16.04 核心版本 4.13.0 36 generic 主要目的 學習字元裝置的編寫 疑問 為何cat dev globalmem會執行兩次?file opration中的函式和open release ...

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

在整個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 主...