驱动开发感悟

设备(device),驱动(device_driver)以及总线(bus_type)是Linux设备驱动模型的三要素。

总线将设备和驱动进行绑定。在系统注册一个设备的时候,会寻找与之匹配的驱动,同样,在系统注册一个驱动的时候,会寻找与之匹配的设备,而匹配工作由总线完成。在设备和驱动匹配成功后,会调用驱动的probe函数来探测设备的寄存器资源,中断,DMA,时钟,同时初始化类(class)及其操作函数集,最后注册该类。

类指的是具有共同属性和功能的设备集。

比较常见的类设备有:v4l2,rtc,tty,input,alsa,misc等等。

下边是驱动开发的主要内容:

1 搭建整个驱动框架,即实现probe函数,remove函数以及device_driver 结构体的dev_pm_ops成员函数。

2 实现驱动控制接口和数据交互接口。上述接口与具体的类设备密切相关,比如tty驱动需要实现tty_operations,网卡驱动需要实现net_device_ops,rtc驱动需要实现rtc_class_ops。

转载于:https://blog.51cto.com/jiangniu/2084415

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值