【嵌入式Linux驱动开发】五、LED驱动完善 - 面向对象·上下分层·左右分离

举报
ReCclay 发表于 2022/02/21 23:37:28 2022/02/21
【摘要】   除了知情权以外,人也应该拥有不知情权,后者的价值要大得多。它意味着高尚的灵魂不必被那些废话和空谈充斥。过度的信息对一个过着充实生活的人来说,是一种不必要的负担。 文章目录 一、面...

  除了知情权以外,人也应该拥有不知情权,后者的价值要大得多。它意味着高尚的灵魂不必被那些废话和空谈充斥。过度的信息对一个过着充实生活的人来说,是一种不必要的负担。


一、面向对象·上下分层·左右分离思想

  • 面向对象
    • 字符设备驱动程序抽象出一个 file_operations 结构体;
    • 我们写的程序针对硬件部分抽象出 led_operations 结构体。
  • 上下分层,
    • 比如我们前面写的 LED 驱动程序就分为 2 层:
    • ① 上层实现硬件无关的操作,比如注册字符设备驱动: leddrv.c
    • ② 下层实现硬件相关的操作,比如 board_A.c 实现单板 A 的 LED 操作
      在这里插入图片描述

  这两种思想在之前的程序中悄无声息的使用着,但是这样就完美了?在之前的程序基础上,考虑这样一种情况:如果硬件上更换一个引脚来控制 LED 怎么办?那就得去修改led_operations结构体初始化中的 init、 ctrl 函数实现。

  实际情况是,每一款芯片它的 GPIO 操作都是类似的。比如:

文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。

原文链接:recclay.blog.csdn.net/article/details/105027949

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。