九鼎创展论坛

标题: 嵌入式linux设备驱动的一点感悟 [打印本页]

作者: 技术小白    时间: 2017-7-9 10:53
标题: 嵌入式linux设备驱动的一点感悟
嵌入式linux设备驱动的一点感悟

嵌入式linux设备驱动的一点感悟
关于linux驱动,可以说是一滩深水,在没有高人指点的情况下,学起来感觉额外费劲。

以前,总提到设备模型这个东西,但我当时其实并不了解设备模型是什么东西。直到后来....

所谓linux设备驱动模型,应该从linux2.6内核说起,2.4内核是没有这么一个概念的,我的理解是这样子的。我们接触过很多,各种linux设备驱动,如字符设备,混杂设备等等。直接注册进系统就可以用了,这些都不涉及驱动模型这一概念。所谓驱动模型,应该是为了做到更好的跨平台吧,才引入的一个东东。怎么说呢?

首先,设备模型涉及到三个概念:总线,设备,驱动。这里面涉及注册,探测,匹配等等。在研究的过程中,又涉及到一些问题。我的理解是这样子的,驱动是总线的驱动,所谓注册驱动,实质上是注册一个总线的驱动,如平台总线,PCI总线。而设备,指的是真正的硬件设备。

要知道,在我们以前的linux驱动当中,如字符设备,混杂设备都只有注册设备这一说法,没有注册驱动这一说法的。只有在涉及到总线的驱动中,才有注册驱动这一说法,如PCI ,IIC,Platform等等。

但是,是先注册驱动,还是先注册设备呢?经过研究,在系统初始化的时候应该是初始化了设备,后面加载设备的时候应该也加载了设备,注册驱动的时候也加载了驱动。所以谁先谁后,看来没有那么简单的答案。这里有涉及链表,设备链表,最开始,系统初始化初,这个链表如何建立的呢?

其次,设备模型是一棵树,2.6内核才有的树。一颗有总线,驱动和设备组成的叶繁枝茂的大树。

这棵树,最直接的体现就是根部目录下的/sys这个文件夹,更确切的说应该是这个虚拟文件系统。可以用命令查看这颗树:tree /sys。


以下课程可免费试听C语言、电子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
想学习的你和我联系预约就可以免费听课了。
企鹅号:3524-6590-88   Tel/WX:173--1795--1908




欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/) Powered by Discuz! X3.2