linux驱动开发理解

来源:互联网 发布:数组的默认长度是多少 编辑:程序博客网 时间:2024/05/23 20:06

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

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

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

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

        

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

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


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



原创粉丝点击