以Linux认识的方式写Linux驱动之字符设备驱动

首先我们需要知道的是Linux内核干了什么我们不关心,我们开发驱动程序,只关心怎么才能让Linux认识我们的驱动,当然,对应的驱动也有对应的应用程序,否则,开发这个驱动也没有任何意义了,综上,我们只需要让Linux认识我们的驱动并且与我们驱动相对应的应用程序也让Linux认识即可。

那工作量就下来了,因为毕竟Linux 怎么工作的非常麻烦,而且短时间也不可能搞透,但现在我们只需关心:Linux认识的驱动和对应驱动的应用程序这两件事即可。

关于字符设备驱动字

如图,这是字符驱动模块的框架,我们套用该框架来写对应驱动程序的入口和出口函数即可。

module_init()和module_exit()就是将写好的前两个函数注册位Linux认识的入口函数和出口函数。

显然这个框架只是告诉Linux了你的出入口函数,但是Linux并不知道你是哪一种设备驱动

下面以字符设备驱动为例继续处理

既然Linux不知道是什么设备的驱动,那我们告诉Linux是什么驱动就好了

在框架的入口函数里面写入

即在入口函数里面就告诉Linux我们是字符设备驱动,其中200代表的是设备号,每一个设备都有唯一的设备号,且设备号是32位的(设备号的知识自行学习吧,比较简单,不说了这里),显然第二个是名字,第三个参数是要注册的字符设备,后面会用到(对所注册的设备的一些操作要写入里面去)。

同时我们需要在出口函数里面相对应的写入注销字符驱动

 至此驱动完成大半了,还剩下,打开设备、关闭设备等一些基础操作需要加入了。现在对于Linux来说你的驱动我已经认识了,你该告诉我你的驱动我怎么操作啦。

给出具体框架:

 

 如图里面的内容,一般变更的部分是对应你的东西名字即可。上面的releas对应的就是close关闭操作

现在的操作写好了,但是Linux说了,你是啥我咋知道,你得写入我的内心才行,好的,马上写入!

 这个名字就是当时注册到Linux的名字即当时注册的时候的名字(上面已经给了,再给一遍):

 至此,一个字符设备驱动框架完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小灰俠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值