驱动学习之LED驱动框架

发布时间:2020-06-23 03:28:49 作者:菜鸟养成记
来源:网络 阅读:382

一:什么是驱动框架
  (1)内核中驱动部分维护者针对每个种类的驱动设计一套成熟的、标准的、典型的驱动实现,然后把不同厂家的同类硬件驱动中相同的部分抽出来自己实现好,再把不同部分留出接口给具体的驱动开发工程师来实现,这就叫驱动框架。
  (2)内核维护者在内核中设计了一些统一管控系统资源的体系,这些体系让内核能够对资源在各个驱动之间的使用统一协调和分配,保证整个内核的稳定健康运行。譬如系统中所有的GPIO就属于系统资源,每个驱动模块如果要使用某个GPIO就要先调用特殊的接口先申请,申请到后使用,使用完后要释放。又譬如中断号也是一种资源,驱动在使用前也必须去申请。这也是驱动框架的组成部分。
  (3)一些特定的接口函数、一些特定的数据结构,这些是驱动框架的直接表现。


二:内核中的LED驱动框架

1:相关文件
  (1)drivers/leds目录,这个目录就是驱动框架规定的LED这种硬件的驱动应该存放的地方。
  (2)led-class.c和led-core.c,这两个文件加起来属于LED驱动框架的第一部分,这两个文件是内核开发者提供的,他们描述的是内核中所有厂家的不同LED硬件的相同部分的逻辑。分析发现这两个文件中重的是led-class.c这个文件。
  (3)leds-xxxx.c,这个文件是LED驱动框架的第2部分,是由不同厂商的驱动工程师编写添加的,厂商驱动工程师结合自己公司的硬件的不同情况来对LED进行操作,使用第一部分提供的接口来和驱动框架进行交互,最终实现驱动的功能。

2:九鼎移植的内核中led驱动

  (1)九鼎移植的内核中未使用内核推荐的led驱动框架
  (2)九鼎的LED驱动存放在drivers/char/led/x210-led.c中






推荐阅读:
  1. 安卓控制LED驱动编写
  2. 全志A33 linux led驱动编程(附实测参考代码)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

led 驱动框架

上一篇:iphone开发中使用动态库(dylib)和动态加载framework(iphone获取IMSI和设置飞行模式)

下一篇:Go36-31-sync.WaitGroup和sync.Once

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》