上下分层、左右分离的驱动设计思想

之前了解了最简单的驱动程序、但是不易扩展、现在继续学习、上下分层、左右分离的驱动设计思想。

1、led_dev.c函数

上层函数,①定义一个结构体,存储函数用来接应app的函数。②定义一个入口函数,将我们接应的函数告诉内核,给这个结构体(包含很多接应函数的)一个位置。③定义一个出口函数,当注销时候从内核出来。

2、led_opr.h

定义n个结构体,存放对应给个模块想操作的函数,如:

①按键结构体存放:初始化某个按键、按键扫描等等函数。

②LED结构体存放:初始化某个LED、控制某个KEY等等函数。

3、board_A_led.c

主要作用是为其提供引脚,不涉及硬件操作,例如想点亮某个灯,就把这个板子上灯的引脚给传出去。

①定义一个platform_device结构体, 里面有资源、资源数量,名字等等,且资源用一个结构体数组表示。②实现出口、入口函数、platform_device_register()等等函数。

4、chip_demo_gpio.c

①主要是先定好一个是将platform_device xxx,结构体内有名字、remove函数、prove函数。②opr结构体定义的函数实现,通过一个结构体接收。

5、led_resource.h

定义选择引脚的函数,使我们能方便选择某个引脚

相关推荐
星火开发设计8 分钟前
C++ queue 全面解析与实战指南
java·开发语言·数据结构·c++·学习·知识·队列
橘颂TA14 分钟前
【剑斩OFFER】算法的暴力美学——力扣 394 题:字符串解码
数据结构·c++·结构与算法
txinyu的博客1 小时前
结合游戏场景理解,互斥锁,读写锁,自旋锁,CAS / 原子变量,分段锁
开发语言·c++·游戏
hugerat1 小时前
在AI的帮助下,用C++构造微型http server
linux·c++·人工智能·http·嵌入式·嵌入式linux
-森屿安年-1 小时前
unordered_map 和 unordered_set 的实现
数据结构·c++·散列表
易水寒陈1 小时前
单片机实现的工厂模式
单片机
九久。1 小时前
手动实现std:iterator/std:string/std::vector/std::list/std::map/std:set
c++·stl
小羊羊Python2 小时前
Sound Maze - 基于 SFML+C++14 的音效迷宫开源游戏 | MIT 协议
c++·游戏·开源
txinyu的博客2 小时前
HTTP服务实现用户级窗口限流
开发语言·c++·分布式·网络协议·http
代码村新手2 小时前
C++-类和对象(上)
开发语言·c++