linux驱动开发理解

所有的Linux驱动都是一个模型:

        内核提供一个设备结构体,里边包括设备的各种属性状态及设备的操作方法;

        驱动开发要做的就是向kernel申请该设备结构体,填充设备结构体的属性状态,实现设备的操作方法;然后注册进kernel;然后,设备就处于一种可用状态;

        设备结构体的属性状态是在修改硬件后更新的;操作方法是不变的;

        

uart驱动,即可以通过char代码设计方式实现,也可以使用tty代码方式实现,当然,也可以通过serial_core方式实现;这其实就是将代码的公共部分和差异部分分开;当然,

如果代码编写能力够强,对网卡架构认识透彻,当然,网卡也可以通过char代码方式实现;


另外,从代码中我可以看到,使用“设备-驱动-总线"模型,可以很好的支持热插拔及/dev目录下设备节点的动态数量;而使用例如char模式,必须在注册的时候指定设备个数;(这个我还得再看看)



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值