四.驱动框架入门之LED(上)

目录一.何谓驱动框架(了解下即可)1.1、驱动是谁写的1.2、驱动编程协作要求1.3、到底什么是驱动框架二.内核驱动框架中LED的基本情况2.1、相关文件2.2、九鼎移植的内核中led驱动2.3、案例分析驱动框架的使用2.4、典型的驱动开发行业现状三.初步分析led驱动框架源码1_23.1、涉及到的文件3.2、subsys_initcal...
摘要由CSDN通过智能技术生成

目录

 

一.何谓驱动框架(了解下即可)

1.1、驱动是谁写的

1.2、驱动编程协作要求

 1.3、到底什么是驱动框架

二.内核驱动框架中LED的基本情况

2.1、相关文件

2.2、九鼎移植的内核中led驱动

2.3、案例分析驱动框架的使用

2.4、典型的驱动开发行业现状

三.初步分析led驱动框架源码1_2

3.1、涉及到的文件

3.2、subsys_initcall

四.在内核中添加或去除某个驱动

4.1、去除九鼎移植的LED驱动

4.2、添加led驱动框架支持

4.3、sysfs中的内容分析

4.4、后续展望:完成leds-x210.c


一.何谓驱动框架(了解下即可)

1.1、驱动是谁写的

(1)驱动开发工程师

(2)内核维护者

1.2、驱动编程协作要求

(1)接口标准化

(2)尽量降低驱动开发者难度

 1.3、到底什么是驱动框架

(1)内核中驱动部分维护者针对每个种类的驱动设计一套成熟的、标准的、典型的驱动实现,然后把不同厂家的同类硬件驱动中相同的部分抽出来自己实现好,再把不同部分留出接口给具体的驱动开发工程师来实现,这就叫驱动框架。

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

(3)一些特定的接口函数、一些特定的数据结构,这些是驱动框架的直接表现。

二.内核驱动框架中LED的基本情况

2.1、相关文件

(1)drivers/leds目录,这个目录就是驱动框架规定的LED这种硬件的驱动应该待的地方。

(2)led-class.c和led-core.c,这两个文件加起来属于LED驱动框架的第一部分,这两个文件是内核开发者提供的,他们描述的是内核中所有厂家的不同LED硬件的相同部分的逻辑。

(3)leds-xxxx.c,这个文件是LED驱动框架的第2部分,是由不同厂商的驱动工程师编写添加的,厂商驱动工程师结合自己公司的硬件的不同情况来对LED进行操作,使用第一部分提供的接口来和驱动框架进行交互,最终实现驱动的功能。

2.2、九鼎移植的内核中led驱动

(1)九鼎实际未使用内核推荐的led驱动框架

(2)drivers/char/led/x210-led.c

2.3、案例分析驱动框架的使用

(1)以leds-s3c24xx.c为例。leds-s3c24xx.c中通过调用led_classdev_register来完成我们的LED驱动的注册,而led_classdev_register是在drivers/leds/led-class.c中定义的。所以其实SoC厂商的驱动工程师是调用内核开发者在驱动框架中提供的接口来实现自己的驱动的。

(2)驱动框架的关键点就是:分清楚内核开发者提供了什么,驱动开发者自己要提供什么

2.4、典型的驱动开发行业现状

(1)内核开发者对驱动框架进行开发和维护、升级,例如led的驱动框架对应led-class.c和led-core.c

(2)SoC厂商的驱动工程师对设备驱动源码进行编写、调试,提供参考版本,对应leds-s3c24xx.c

(3)做产品的厂商的驱动工程师以SoC厂商提供的驱动源码为基础,来做移植和调试

三.初步分析led驱动框架源码1_2

3.1、涉及到的文件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值