今天在群里面讨论了驱动机制的学习

今天在群里面讨论了驱动机制的学习,收获挺大的,在此总结一下与大家分享。错误之处请批评指正。

在驱动接触过程中,是以内存字符设备驱动作为敲门砖的,学习了驱动程序的基本框架,各种设备方法,可是内存设备毕竟只是内存虚拟出来的设备,还是要学习真正的设备驱动,那么最开始就是接触的硬件访问,怎么去访问硬件资源,IO端口,IO内存,映射,

这些概念都非常重要,然而这些硬件资源的访问与管理都是非常零散的,后面就开始介绍了了一种专门的设备管理模型来管理硬件资源,设备模型,总体来说就是将开发板上的设备作为一种模型来处理,设备模型包括了kobject,kset,总线设备驱动模型,platform模型。kobject,kset作用表现就是在sys下面创建文件,只是后者加入了热插拔机制。

设备总线驱动模型只是管理常用总线下的设备,常见总线有pci,usb,iic,spi。platform是一种虚拟总线,管理其它设备。

在这些模型基础上可以实现很多功能性驱动,比如串口网卡触摸屏的驱动。这些设备模型务必熟练掌握,因为后面内核中大量用到它们。

在后面学习串口网卡等等一些功能性驱动时,重点掌握它的驱动框架以及设备方法,比如怎样初始化注册一个串口驱动,怎样注册一个串口,串口的发送函数是怎么实现的,千万不要纠结于这些设备的设备模型,

这些模型不需要我们主动去注册实现,内核已经帮我们实现好了,我们要关注的是设备方法和设备驱动框架。这也是为什么谢老师在讲解网卡触摸屏串口驱动时没有自己编写代码,而只讲解设备原理和从内核中摘出来的基本设备方法。当然有兴趣的话可以去查看内核整个从设备模型到驱动编写是怎么实现的,不过不要深究。

posted on 2018-08-13 14:24  lucelu  阅读(114)  评论(0编辑  收藏  举报

导航