字符设备驱动
来源:互联网 发布:武汉大学网络自助服务 编辑:程序博客网 时间:2024/06/06 09:35
2.4内核
static inline int register_chrdev(unsigned int major, const char *name, const struct file_operations *fops)static inline void unregister_chrdev(unsigned int major, const char *name)
2.6内核
#define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS))#define MINOR(dev) ((unsigned int) ((dev) & MINORMASK))#define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi)) //将主设备号和次设备号转换成dev_t类型int register_chrdev_region(dev_t from, unsigned count, const char *name) //注册设备号int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char *name)void unregister_chrdev_region(dev_t from, unsigned count)struct cdev *cdev_alloc(void)void cdev_init(struct cdev *cdev, const struct file_operations *fops) //初始化int cdev_add(struct cdev *p, dev_t dev, unsigned count) //添加到内核void cdev_del(struct cdev *p) //删除
手动创建设备节点
# cat /proc/devices //查看主设备号# mknod /dev/设备名 c|b(c是字符设备,b是块设备) 主设备号 次设备号 //创建# rm /dev/char //删除
借助class创建设备节点
从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代
#define class_create(owner, name)void class_destroy(struct class *cls)struct device *device_create(struct class *class, struct device *parent, dev_t devt, void *drvdata, const char *fmt, ...)void device_destroy(struct class *class, dev_t devt)
创建多个设备
struct cdev *cdev;cdev = kzalloc(sizeof(struct cdev) * COUNT, GFP_KERNEL);for(i = 0; i < COUNT; i++){ cdev_init(&cdev[i], &fops); cdev_add(&cdev[i], dev+i, 1);}for(i = 0; i < COUNT; i++){ cdev_del(&cdev[i]);}
1 0
- 字符设备驱动--- 设备操作
- 字符设备驱动更新
- 字符设备驱动模板
- 字符设备驱动模板
- 字符设备驱动1
- 字符设备驱动编写
- LINUX--字符设备驱动
- 字符设备驱动01
- 字符设备驱动02
- LED字符设备驱动
- led字符设备驱动
- Linux字符设备驱动
- 字符设备驱动
- Linux字符设备驱动
- Linux字符设备驱动
- 字符设备驱动分析
- 字符设备驱动详解
- 字符设备驱动实验
- Java/Android中的3DES加密
- pl/sql array类型
- Error while Launching activity
- CMT算法框架分析
- 【Shiro】Apache Shiro架构之自定义realm
- 字符设备驱动
- Qt:记事本源代码分享(新手入门,老鸟勿喷)
- 【hdu】2369 Bone Collector II【kth背包】
- 【redis】常见JedisConnectionException异常分析
- Buffer对象与JSON对象相互转换
- 【Unity技巧】自定义消息框(弹出框)
- 第六天打字练习
- pthread_mutex_t 和 pthread_cond_t 配合使用的简要分析
- 怎样保存sql server profiler的跟踪结果