【嵌入式Linux驱动开发】五、LED驱动完善 - 面向对象·上下分层·左右分离
【摘要】
除了知情权以外,人也应该拥有不知情权,后者的价值要大得多。它意味着高尚的灵魂不必被那些废话和空谈充斥。过度的信息对一个过着充实生活的人来说,是一种不必要的负担。
文章目录
一、面...
除了知情权以外,人也应该拥有不知情权,后者的价值要大得多。它意味着高尚的灵魂不必被那些废话和空谈充斥。过度的信息对一个过着充实生活的人来说,是一种不必要的负担。
一、面向对象·上下分层·左右分离思想
- 面向对象
- 字符设备驱动程序抽象出一个 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)