驅動學習筆記(三) 字元裝置驅動基礎

2021-10-25 15:36:57 字數 1183 閱讀 6793

使用者空間和核心資料互動

過程總結

本文為朱老師課程學習筆記

驅動實際上是一組(讀寫硬體暫存器的)api的組合

存到乙個結構體裡

file_operations
static

const

struct file_operations i2cdev_fops =

;

函式指標,實際函式的位址

乙個裝置,對應乙個結構體變數

驅動向核心註冊時提供該結構體型別的變數

驅動向核心註冊,上面的結構體file_operations

核心把file_operations,放到陣列裡

//register_chrdev使用示例

//i2c_major主裝置號,傳0代表核心自動分配

res =

register_chrdev

(i2c_major,

"i2c"

,&i2cdev_fops)

;

cat /proc/devices檢視核心中已經註冊的

硬體,被抽象成檔案,放在/dev下

檢視裝置號 ls -l /dev/***

第乙個字母,b塊裝置,c字元裝置

裝置號:8主裝置號,0次裝置號

//kbuf核心空間的

//ubuf使用者空間的

copy_from_user

(kbuf, ubuf, count)

;copy_to_user

(ubuf, kbuf, count)

;

2.6的核心

insmod,調***_init;lsmod,顯示出載入的驅動

在***_init裡呼叫register_chrdev;用cat /proc/devices顯示註冊的裝置及裝置號

建立裝置檔案mknod /dev/*** c字元裝置 主裝置號 次裝置號

應用可以open,並write或read

2 6字元裝置驅動

chardev.c include include for file f op include include for copy to user include for cdev cdev init,cdev add module license gpl module author helight ...

Linux裝置驅動程式學習(1) 字元裝置驅動程式

linux裝置驅動程式學習 1 字元裝置驅動程式 一 分配裝置號 1 對字元裝置的訪問是通過檔案系統內的裝置名稱進行的 dev ttys0 在核心中,include dev t 用來儲存裝置編號 包括主裝置號和次裝置號。由dev t獲得主次裝置號 major dev t dev minor dev ...

《linux裝置驅動》讀書筆記二 字元驅動

1 字元驅動 操作從核心分配的記憶體 2 dev目錄ls l 可以檢視 其中 c 開頭為字元裝置 b 開頭為塊裝置 3 裝置主編號標識驅動 次編號標識具體裝置 4 dev t裝置主次編號結構 前12位主編號 後20位次編號 5 獲取裝置主次編號函式 major dev t dev minor dev...