字元裝置驅動初識

2022-08-29 03:33:10 字數 1504 閱讀 7324

在linux下的應用層,一切皆檔案,每個裝置都對應著檔案。然而,在核心中,為了標識裝置的,會用特意的號碼:叫字符號來表示。

今天將會學到字元裝置的驅動,來寫乙個程式,通過在應用層寫程式來操作核心裡的裝置檔案,在應用層,寫了乙個程式,來開啟乙個檔案:

1 #include 2 #include 3

4int

main() 5

11}

1213

~

在核心層,註冊了乙個裝置檔案wangcai和方法ops,註冊的時候,將會跳轉到my_opreations函式去操作;

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21

22 #include 23 #include 24 #include 25

26 module_license("

gpl");

27 module_author("

bunfly");

2829int my_open(struct inode *no, struct file *fp); 30

//裝置號 檔案

31struct

file_operations ops; 32

//放法

33struct

cdev wangcai; 34

//裝置

3536

inttest_init() 37

5051void

test_exit() 52

5556module_init(test_init); 57

module_exit(test_exit); 58

59int my_open(struct inode *no, struct file *fp) 60

6465

課後習題:

看懂,會寫函式:

1 #include 2

3struct

file_operations; 4

5struct

person; 12

struct

file_operations; 15

void eat(struct person *this);

16int

main() 17

28void eat(struct person *this)

29 32

2.寫下字元檔案的read,write,close檔案;

3.通過io_control()函式來控制燈亮燈滅。

今天知識大概是這樣。有寫命令沒記下來,等明天在補齊

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

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

字元裝置驅動

標頭檔案包含 include 變數定義 define gpgconaddr 0x56000060 硬體中斷號定義 define key1 irq irq eint5 define key2 irq irq eint3 裝置名定義 define devname mykey 主裝置號 cdev定義 需全...