![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux设备驱动
灬见龙在田灬
后续增加
展开
-
字符设备注册相关函数
韦东山书本和视频讲的都是字符设备驱动都是2.4的接口但大多新书早已经是讲2.6的接口了,如LDD3、国嵌、宋宝华的书(1)早期版本的字符设备注册。早期版本的设备注册使用函数 register_chrdev(),调用该函数后就可以向系统申请 主设备号,如果 register_chrdev()操作成功,设备名就会出现在/proc/devices 文件里。 在关闭设备时,通常需要转载 2014-04-10 21:35:42 · 660 阅读 · 0 评论 -
cdev_alloc和cdev_init
内核中每个字符设备都对应一个 cdev结构的变量,下面是它的定义:linux-2.6.22/include/linux/cdev.hstruct cdev {struct kobject kobj; // 每个 cdev都是一个 kobjectstruct module *owner; //指向实现驱动的模块const struct file_op转载 2014-04-10 20:27:20 · 507 阅读 · 0 评论 -
class_create()函数解析
从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。提醒一点,udev是应用层的,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用device_create创建对应的设备。大致用法如下:struct class *m转载 2014-04-10 22:06:34 · 1330 阅读 · 0 评论 -
linux驱动之中断函数request_irq()
request_irq()、free_irq() 这是驱动程序申请中断和释放中断的调用。在include/linux/sched.h里声明。 request_irq()调用的定义: int request_irq(unsigned int irq, void (*handler)(int irq, void *dev_id, struct pt_regs *regs ),转载 2014-04-11 20:18:38 · 1390 阅读 · 0 评论