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

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

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

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

相关推荐
j_xxx404_3 小时前
Linux:静态链接与动态链接深度解析
linux·运维·服务器·c++·人工智能
bubiyoushang8883 小时前
STM32F103C8T6+DM9051以太网功能实现方案
stm32·单片机·嵌入式硬件
c++之路4 小时前
C++23概述
java·c++·c++23
IT_阿水4 小时前
基于STM32河流水质检测
stm32·单片机·嵌入式硬件
黑白园4 小时前
STM32定时器中断
stm32·单片机·嵌入式硬件
学涯乐码堂主5 小时前
有趣的“打擂台算法”
c++·算法·青少年编程·gesp
weixin_456808385 小时前
【沁恒蓝牙开发】ADC DMA定时采样、转化
单片机·嵌入式硬件
云栖梦泽6 小时前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++
华普微HOPERF6 小时前
MCU+BLE射频+丰富外设,BLE SoC如何高效传输数据?
单片机·嵌入式硬件
振南的单片机世界6 小时前
时钟开关:不用的外设,把它的时钟关掉,省电!
stm32·单片机·嵌入式硬件