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

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

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

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

相关推荐
DLGXY1 天前
STM32——输入捕获、编码器接口(十一)
stm32·单片机·嵌入式硬件
安全二次方security²1 天前
CUDA C++编程指南(7.25)——C++语言扩展之DPX
c++·人工智能·nvidia·cuda·dpx·cuda c++编程指南
爱装代码的小瓶子1 天前
【c++与Linux基础】文件篇(4)虚拟文件系统VFS
linux·开发语言·c++
疯狂的喵1 天前
C++编译期多态实现
开发语言·c++·算法
余生皆假期-1 天前
永磁同步电机二次起步处理
单片机·嵌入式硬件
2301_765703141 天前
C++中的协程编程
开发语言·c++·算法
m0_748708051 天前
实时数据压缩库
开发语言·c++·算法
小魏每天都学习1 天前
【算法——c/c++]
c语言·c++·算法
DLGXY1 天前
STM32——TIM定时器、定时中断、RCC时序(八)
stm32·单片机·嵌入式硬件
CQ_YM1 天前
ARM之I2C
arm开发·单片机·嵌入式硬件·嵌入式