linux驱动开发理解

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

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

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

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

        

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

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


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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值