混杂设备驱动程序的编写
2012-09-11 17:29
281 查看
混杂设备
定义:linux中把无法归类的五花八门的设备定义为混杂设备,像LED,按键等。所有的混杂设备都被分配一个主设备号10,但每个设备可选择一个单独的次设备号。
混杂设备用一个struct miscdevice结构体来描述,混杂驱动只需要调用misc_register()即可完成字符驱动的所有步骤:
#include<linux/miscdevice.h>
建一个miscdevice结构体
static struct miscdevice misc = {
.minor = MISC_DYNAMIC_MINOR,
.name = DEVICE_NAME,
.fops = &dev_fops,
};
在驱动函数初始化中注册这个混杂设备
misc_register(&misc);
驱动卸载时,注销这个设备
misc_deregister(&misc);
混杂设备miscdevice说明
miscdevice结构体
struct miscdevice {
int minor;
const char *name;
const struct file_operations *fops;
struct list_head list;
struct device *parent;
struct device *this_device;
const char *nodename;
mode_t mode;
};
设备注册和注销
extern int misc_register(structmiscdevice * misc);
extern int misc_deregister(structmiscdevice *misc);
在写一个LED设备驱动程序时,IO口配置放在设备初始化中;LED的控制使用IOCTL,有关GPIO操作的的函数都在
#include<mach/gpio-fns.h>
中,如
voids3c2410_gpio_cfgpin(unsigned int pin, unsigned int function);
voids3c2410_gpio_setpin(unsigned int pin, unsigned int to);
voids3c2410_gpio_pullup(unsigned int pin, unsigned int to);
unsigned ints3c2410_gpio_getpin(unsigned int pin);
而GPIO端口定义在
#include<mach/regs-gpio.h>
中,如
S3C2410_GPBCON
S3C2410_GPBDAT
S3C2410_GPBUP
定义:linux中把无法归类的五花八门的设备定义为混杂设备,像LED,按键等。所有的混杂设备都被分配一个主设备号10,但每个设备可选择一个单独的次设备号。
混杂设备用一个struct miscdevice结构体来描述,混杂驱动只需要调用misc_register()即可完成字符驱动的所有步骤:
#include<linux/miscdevice.h>
建一个miscdevice结构体
static struct miscdevice misc = {
.minor = MISC_DYNAMIC_MINOR,
.name = DEVICE_NAME,
.fops = &dev_fops,
};
在驱动函数初始化中注册这个混杂设备
misc_register(&misc);
驱动卸载时,注销这个设备
misc_deregister(&misc);
混杂设备miscdevice说明
miscdevice结构体
struct miscdevice {
int minor;
const char *name;
const struct file_operations *fops;
struct list_head list;
struct device *parent;
struct device *this_device;
const char *nodename;
mode_t mode;
};
设备注册和注销
extern int misc_register(structmiscdevice * misc);
extern int misc_deregister(structmiscdevice *misc);
在写一个LED设备驱动程序时,IO口配置放在设备初始化中;LED的控制使用IOCTL,有关GPIO操作的的函数都在
#include<mach/gpio-fns.h>
中,如
voids3c2410_gpio_cfgpin(unsigned int pin, unsigned int function);
voids3c2410_gpio_setpin(unsigned int pin, unsigned int to);
voids3c2410_gpio_pullup(unsigned int pin, unsigned int to);
unsigned ints3c2410_gpio_getpin(unsigned int pin);
而GPIO端口定义在
#include<mach/regs-gpio.h>
中,如
S3C2410_GPBCON
S3C2410_GPBDAT
S3C2410_GPBUP
相关文章推荐
- linux混杂设备驱动程序编写的不同
- 如何编写Linux设备驱动程序
- 编写Linux操作系统设备驱动程序概述
- 用 Delphi 编写 VxD 设备驱动程序(转)
- 如何编写Linux设备驱动程序
- Linux字符设备驱动程序编写基本流程
- 编写LED混杂设备驱动:静态映射,如何用Linux内核里的gpio_request(),gpio_set_value()等函数,ioctl函数
- android miscdevice(混杂设备)驱动编写注意
- 为多功能片上系统处理器编写 Linux 设备驱动程序
- 如何编写Linux设备驱动程序
- 第12课第4.3节 字符设备驱动程序之中断方式的按键驱动_编写代码
- 如何编写Linux设备驱动程序
- 【亚嵌】手把手教你如何编写Linux操作系统的设备驱动程序(一)
- 用 Delphi 编写 VxD 设备驱动程序
- 如何编写Linux操作系统下的设备驱动程序
- 如何编写Linux设备驱动程序
- 如何编写Linux设备驱动程序
- 用Delphi编写VxD设备驱动程序
- 如何编写Linux设备驱动程序以及测试详细流程(附实例)
- 如何编写Linux设备驱动程序