驱动学习之驱动框架基础

来源:互联网 发布:unity3d模型下载 编辑:程序博客网 时间:2024/05/17 23:14

驱动框架的概念或者目的:

第一:

内核中驱动部分维护者针对每个种类 (这个种类有可能是LEDS i2c rtc)等等的驱动设计一套成熟的、标准的、典型的驱动实现,然后把不同厂家的同类硬件驱动中相同的部分抽出来自己实现好,再把不同部分留出接口给具体的驱动开发工程师来实现,这就叫驱动框架。真正的驱动工作人员 把内核给你提供出来相关结构体进行信息的填写。调用相关的接口进行注册即可。内部的实现都是由内核来实现的。

第二: 内核对资源的管控

内核对所有的资源都会进行一定监管(这个需要你是用内核的那一套来申请和释放资源)比如GPIO

这些体系让内核能够对资源在各个驱动之间的使用统一协调和分配,
保证整个内核的稳定健康运行。譬如系统中所有的GPIO就属于系统资源,每个驱动模块如果要使用某个GPIO就要
先调用特殊的接口先申请,
申请到后使用,使用完后要释放。又譬如中断号也是一种资源,驱动在使用前也必须去申请。这也是驱动框架的组成部分。


第三点:

作为驱动人员学习驱动最主要的目的:就是学习一些接口函数和特定的数据结构。了解内核做了那一部分 预留除了什么样的结构体和函数指针需要我们来完成

目前内核驱动发展的情况:

第一点:典型的驱动(LED,鼠标,键盘,网络等等典型的驱动)

第二点:   非典型驱动(一个世面上没见到设备)

对于典型的驱动,内核的工作者都提供类相应的驱动框架(类)都会把相同的地方自己实现,不同的地方留给产商。


我们需要研究的第一个框架是:LED框架

目的:那一部分是内核的工作人员写的,作用是什么,提供给驱动人员什么样的一个结构体和接口函数。

那一部分需要自己来弄懂。 内核中那一部分文件是LED的框架,处在内核中的哪一个位子,每一个文件的作用是什么,之间呈现一个怎么样的调用关系


原创粉丝点击