关于如何编写linux设备驱动

关于如何编写linux设备驱动
1)首先确定硬件接口使用的总线,然后确定要实现的功能,是网卡、sensor还是什么,2)再确定对上层应用暴露的接口, 从而选择子系统,例如iio、input子系统等。由于linux只有字符设备、块设备、网络设备三种设备,其实iio、input子系统都是字符设备,只是它们帮你封装好了字符设备的file_operations和Major设备号了,另外提供统一的sysfs接口(一类sysfs接口)。你只需要按照子系统要求注册进子系统就行。子系统就像应用和你驱动之间的framework中间层,它帮你处理了很多通用的功能。另外自己再加入一些specific的sysfs接口即可。
确定了上面这些后,你就可以找到对应的例子去抄(参考)了。说白了,linux 内核设计者已经给你搭好了大的框架,你所要思考框架的东西并不多,你需要的是熟悉内核提供了什么框架子系统,如何使用。
什么样的bus,决定你调用什么总线API去访问硬件,什么样的功能决定你用什么样的子系统来暴露接口给上层应用使用。

关于具体的写linux驱动的方法、技巧和注意事项,欢迎观看我的《如何编写linux设备驱动》的视频:
https://edu.51cto.com/course/17132.html

另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html https://blog.csdn.net/gaoneil

另外我的免费的linux各种驱动开发课程如下:
https://edu.51cto.com/course/17138.html

另外注意:
即原则,内核只提供功能和接口,不负责策略和配置,策略和配置应该有具体应用提供。
天下代码一大抄,鼓励大家理解的方式抄好的代码例子。
对各个linux kernel子系统的api函数和重要结构体的熟悉是必须的。
--------------------- 
作者:年 neil 
来源:CSDN 
原文:https://blog.csdn.net/gaoneil/article/details/88318043 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值