![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux设备驱动
懂懂
这个作者很懒,什么都没留下…
展开
-
简单字符设备驱动的编写
linux下的每一个字符设备都有一个struct cdev 结构体,所以编写字符设备驱动就是把这个结构体填好。 该结构体如下: linux-2.6.22/include/linux/cdev.h struct cdev { struct kobject kobj; // 每个 cdev 都是一个kobject struct module *owner;原创 2012-09-10 15:41:23 · 417 阅读 · 0 评论 -
阻塞型字符设备驱动的编写
设置一个阻塞型字符设备驱动 在设备的读操作中加入阻塞函数: ... While(!have_data) { if (filp->f_flags & O_NONBLOCK) return -EAGAIN; wait_event_interruptible(dev->inq,have_data);原创 2012-09-10 15:47:55 · 640 阅读 · 0 评论 -
linux设备驱动程序自动创建设备文件
自动创建设备文件方法: 设备驱动和应用程序之间通过/dev目录下的设备文件来通讯,这个设备文件可以由用户使用mknod 来手工创建,也可以由设备驱动程序在初始化时自动创建。 这种工作一般是这样的: #include staticint memdev_init(void) { struct class *myclass; … myclass = cl原创 2012-09-10 15:50:18 · 500 阅读 · 0 评论 -
混杂设备驱动程序的编写
混杂设备 定义:linux中把无法归类的五花八门的设备定义为混杂设备,像LED,按键等。所有的混杂设备都被分配一个主设备号10,但每个设备可选择一个单独的次设备号。 混杂设备用一个struct miscdevice结构体来描述,混杂驱动只需要调用misc_register()即可完成字符驱动的所有步骤: #include 建一个miscdevice结构体 stati原创 2012-09-11 17:29:51 · 531 阅读 · 0 评论 -
linux设备模型中的kobject使用
要在目录/sys/下创建一个目录,就需要向内核注册一个kobject结构。 该结构就是该目录的一个载体。而该结构的属性由struct kobj_type来保存。 注册kojbect的方法为: /*初始化 kobject结构*/ void kobject_init(struct kobject * kobj); /*将kobject对象注册到linux系统*/ Int kob原创 2012-09-20 17:04:09 · 499 阅读 · 0 评论 -
在linux系统的fsysfs中创建总线,以及为总线增加设备和驱动
注册总线三步曲: 注册总线 bus_register(&my_bus_type); 创建属性文件 bus_create_file(&my_bus_type, &bus_attr_version); 注册总线设备 device_register(&my_bus); 总线由struct bus_type结构来表示,如第一步的my_bus_type, 定原创 2012-09-20 17:07:51 · 816 阅读 · 0 评论