九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 5608|回复: 2
打印 上一主题 下一主题

嵌入式linux设备驱动的一点感悟

[复制链接]
跳转到指定楼层
楼主
发表于 2017-6-9 10:09:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
嵌入式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
回复

使用道具 举报

沙发
发表于 2020-9-3 22:50:26 | 只看该作者
真的谢谢了!












【阿里云1000+特价域名  一口价  秒过户】
https://mi.aliyun.com/shop/43611
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-11-22 19:04 , Processed in 0.017674 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表