混雜裝置驅動模型

2021-10-18 07:39:16 字數 2431 閱讀 5681

混雜裝置,它們擁有相同的主裝置號(數字10),但次裝置號不同,我們稱這類裝置為混雜裝置(miscdevice)。然後呼叫其file_operations結構中註冊的檔案操作介面進行操作。對比普通字元裝置操作比較簡單

struct miscdevice ;例:

static

struct miscdevice gpio_miscdev =

;

int

misc_register

(struct miscdevice * misc)

引數:裝置描述結構體指標

例: misc_register

(&gpio_miscdev)

;

static

struct file_operations gpio_fops=

;各函式指標具體原型見字元裝置模型:https:

110261854

int

demisc_register

(struct miscdevice * misc)

引數:裝置描述結構體指標

例: misc_deregister

(&gpio_miscdev)

;

模板:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

<..>

#define device_name "imx28x_led"

static

intgpio_open

(struct inode *inode,

struct file *filp)

;static

intgpio_release

(struct inode *inode,

struct file *filp)

;ssize_t gpio_write

(struct file *filp,

const

char __user *buf, size_t count,loff_t *f_pos)

;static

intgpio_ioctl

(struct inode *inode,

struct file *flip,

unsigned

int command,

unsigned

long arg)

;static

intgpio_init

(void);

static

void

gpio_exit

(void);

static

intgpio_open

(struct inode *inode,

struct file *filp)

static

intgpio_release

(struct inode *inode,

struct file *filp)

ssize_t gpio_write

(struct file *filp,

const

char __user *buf, size_t count,

loff_t *f_pos)

static

intgpio_ioctl

(struct inode *inode,

struct file *flip,

unsigned

int command,

unsigned

long arg)

static

struct file_operations gpio_fops=

;static

struct miscdevice gpio_miscdev =

;static

int __init gpio_init

(void

)static

void __exit gpio_exit

(void

)module_init

(gpio_init)

;module_exit

(gpio_exit)

;

參考:

混雜裝置驅動模型

在linux系統中,存在一類字元裝置,它們擁有相同的主裝置號10,但次裝置號不同,我們稱這類裝置為混雜裝置 miscdevice 所有的混雜裝置形成乙個鍊錶,對裝置訪問時核心根據次裝置號查詢到相應的混雜裝置。如果乙個字元裝置驅動要驅動多個裝置,則它不應該選用混雜裝置來實現。linux中使用struc...

Linux 混雜裝置驅動模型

混雜裝置miscdevice是字元裝置的一種,它們共享乙個主裝置號misc major 即10 但次裝置號不同,所有的miscdevice裝置形成了乙個鍊錶,對裝置訪問時核心根據次裝置號查詢對應的miscdevice裝置。這樣做的好處,節約主裝置號,將某些裝置用鍊錶的形式鏈結在一起,最後通過查詢次裝...

12 混雜裝置驅動模型

混雜裝置驅動模型 在linux系統中,存在一類字元裝置,它們擁有相同的主裝置號 數字10 但次裝置號不同,我們稱這類裝置為混雜裝置 miscdevice 所有的混雜裝置形成乙個鍊錶,對裝置訪問時核心根據次裝置號查詢到相應的混雜裝置。一 裝置描述 linux中使用struct miscdevice來描...