linux字元裝置驅動

2021-07-12 04:28:33 字數 1002 閱讀 5705

linux字元裝置驅動

字元裝置檔案和字元裝置驅動通過主裝置號聯絡

主裝置號對應裝置型別

次裝置區分同型別的裝置

核心如何如何描述裝置號?

用dev_t 實質為12+20位的整數

major

minor

怎樣申請裝置驅動?

1.靜態申請

2.動態分配

int alloc_chrdev_region

安裝後/proc/devices檢視裝置名

不用裝置時,登出裝置號

有裝置號建立裝置檔案

1.手工建立

mknod用法

mknod  serial0 c 100 0

struct file

loff_t f_pos 檔案讀寫位置

struct file_operations *f_op

struct inode

dev_t i_rdev

struct file_operations  過渡作用

系統呼叫做出讀寫,驅動程式根據做出反應

vfs_read函式

分配c_dev

struct cdev * cdev_alloc(void)

初始化c_dev

void cdev_init(struct cdev*cdev,const file_operations*fops)

待初始化的cdev結構

裝置對應的操作函式集

註冊新增c_dec

int cdev_add(struct cdev* p,dev_t dev,unsigned count)

登出裝置

int cdev_del

open

close

***_read

2個來自核心空間,2個來自使用者空間,使用者空間指標不能直接訪問copy_to_user

***_write

驅動除錯

列印除錯

偵錯程式除錯

查詢除錯 

驅動 linux裝置驅動 字元裝置驅動開發

preface 前面對linux裝置驅動的相應知識點進行了總結,現在進入實踐階段!linux 裝置驅動入門篇 linux 裝置驅動掃盲篇 fedora下的字元裝置驅動開發 開發乙個基本的字元裝置驅動 在linux核心驅動中,字元裝置是最基本的裝置驅動。字元裝置包括了裝置最基本的操作,如開啟裝置 關閉...

Linux裝置驅動之《字元裝置驅動》

linux裝置中最大的特點就是裝置操作猶如檔案操作一般,在應用層看來,硬體裝置只是乙個裝置檔案。應用程式可以像操作檔案一樣對硬體裝置進行操作,如open close read write 等。下面是乙個字元裝置驅動程式的簡單實現test.c 模組分析 1.初始化裝置驅動的結構體 struct fil...

Linux裝置驅動之字元裝置驅動

一 linux裝置的分類 linux系統將裝置分成三種基本型別,每個模組通常實現為其中某一類 字元模組 塊模組或網路模組。這三種型別有 字元裝置 字元裝置是個能夠像位元組流 類似檔案 一樣被訪問的裝置,由字元裝置驅動程式來實現這種特性。字元裝置可以通過檔案系統節點來訪問,比如 dev tty1等。這...