ChinaUnix.net
相关讨论

  1. /* 文件名:kpad.c */
  2. /* 说明:kpad 字符设备驱动例程 */

  3. #

by luozhiyong131 - 移动操作系统 - 2011-02-25 10:13:42 阅读(561) 回复(0)

字符设备驱动学习 一.字符设备类型: dev_t: 定义于include/linux/types.h中,下面是摘自types.h: typedef __u32 __kernel_dev_t; typedef __kernel_fd_set fd_set; typedef __kernel_dev_t dev_t; typedef __kernel_ino_t ino_t; typedef __kernel_mode_t mode_t; typedef __kernel_nlink_t nlink_t; typedef __kernel_off_t off_t; typedef __kernel_pid_t pid_t; ..... 可以看...

by yinguohua - Linux文档专区 - 2009-07-30 16:03:41 阅读(679) 回复(0)

字符设备驱动学习 (以globalmem为例) 设备驱动模块通过module_init(globalmem_init); module_exit(globalmem_exit); 进行加载和卸载。 首先看看模块加载函数globalmem_init: 其完成功能如下: 1、申请设备号 2、申请内存空间 3、注册字符设备 主要也就这些了 字符设备的注册步骤如下: 1、用cdev_init来初始化cdev 2、初始化cdev.owner 3、告诉内核该结构的信息(cdev_add) 其中cdev_init把cdev和文件操作结构体...

by drh00 - Linux文档专区 - 2009-02-26 20:22:28 阅读(654) 回复(0)

字符设备驱动 1. 主设备号和次设备号. 1.介绍 对字符设备的访问是通过文件系统内的设备文件进行的. 这些文件位于/dev. 设备通过设备号来标识: 主设备号: 标识设备对应的驱动程序.在linux里,允许多个驱动程序共用一个主设备号. 次设备号: 用于确定设备文所指的设备. 在内核中,用dev_t类型>保存设备号.定义在 2.4 kernel 采用16位设备号(8 bit 主,8 bit 次); 2.6 kernel 采用 32位设备号(12 bit 主,20 bit 次); 在驱动程...

by yuchuan2008 - Linux文档专区 - 2008-09-08 12:31:52 阅读(598) 回复(0)

file fooDrv.h #ifndef __INCfooDrv #define __INCfooDrv #include "vxWorks.h" #include "sioLib.h" STATUS fooDrv(); STATUS fooDevCreate(char *devName); STATUS fooDelete(char *devName); int fooOpen(DEV_HDR *pfooDevHdr, char *devName, int option, int flags); int fooClose(int fooDevId); int fooRead(int fooDevId, char *pBuf, int nBytes); int fooWrite(int fooDevId, char *pBuf, int nBytes); int fooIoctl(in...

by huangxb_csu - Linux文档专区 - 2008-08-22 22:10:28 阅读(479) 回复(0)

字符设备驱动Linux字符设备驱动结构1 .cdev结构体struct cdev{ struct kobject kobj; //内嵌的kojbect对象 struct module *owner; //所属模块 struct file_operations *ops; //文件操作结构体 struct list_head list; dev_t dev; //设备号 unsigned int count;};2 . 主次设备号的获得高12为主设备号,低20为次设备号,下面两个宏可以从dev_t中获得主设备号和次设备号MAJOR(dev_t dev);MI...

by chinahhucai - Linux文档专区 - 2008-07-28 21:07:51 阅读(670) 回复(0)

struct cdev { struct kobject kobj; struct module *owner; struct file_operations *ops; struct list_head list; dev_t dev; unsigned int count } MAJOR(dev_t dev) MINOR(dev_t dev) MKDEV(int major, int minor) void cdev_init(struct cdev *, struct file_operation *); struct cdev * cdev_alloc(void); void cdev_put(struct cdev *p); int cdev_add(struct cdev *, dev_t, unsigned); int cdev_del(struct cdev *); int...

by frensky2 - Linux文档专区 - 2008-06-27 11:16:40 阅读(503) 回复(0)

高级字符设备驱动 1.ioctl 除了读取和写入设备外,驱动程序还需另外一种能力,即通过设备驱动程序执行各种类型的硬件控制. 1.用户空间的ioctl Int ioctl(int fd,unsigned long cmd,...); Fd:打开的设备文件描述符. Cmd:命令 第三个参数:根据不同的命令,可以是整数或指针.也可以没有.采用...用于避免编译器报错. 2.内核空间的ioctl Int (*ioctl) (struct inode *inode,struct file *filp,unsigned int cmd,unsign...

by liao_cj - Linux文档专区 - 2007-10-06 08:54:59 阅读(768) 回复(0)

字符设备驱动 1. 主设备号和次设备号. 1.介绍 对字符设备的访问是通过文件系统内的设备文件进行的. 这些文件位于/dev. 设备通过设备号来标识: 主设备号: 标识设备对应的驱动程序.在linux里,允许多个驱动程序共用一个主设备号. 次设备号: 用于确定设备文所指的设备. 在内核中,用dev_t类型>保存设备号.定义在 2.4 kernel 采用16位设备号(8 bit 主,8 bit 次); 2.6 kernel 采用 32位设备号(12 b...

by liao_cj - Linux文档专区 - 2007-09-16 23:03:26 阅读(1068) 回复(0)

错误: ‘__builtin_memset’的第 1 个实参类型不兼容 附注: 需要类型‘void *’,但实参的类型为‘struct mem_dev’ 源代码:mem_devp=kmalloc(MEMDEV_NR_DEVS*sizeof(struct mem_dev),GFP_KERNEL);//194 if(!mem_devp) { result=-ENOMEM; goto fail_malloc; } memset(mem_devp,0,sizeof(struct mem_dev)); 实在看不出来到底哪错了,求各位大神帮忙啊,还有 警告: 格式 ‘%d’ expects argument of type ‘int’, but a...

by emleehom - Linux新手园地 - 2013-08-19 19:32:33 阅读(911) 回复(0)