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

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

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

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

相关推荐
智者知已应修善业1 小时前
【51单片机节日彩灯控制器设计】2022-6-11
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
小小小小王王王3 小时前
求猪肉价格最大值
数据结构·c++·算法
岁忧3 小时前
(LeetCode 面试经典 150 题 ) 58. 最后一个单词的长度 (字符串)
java·c++·算法·leetcode·面试·go
许白掰4 小时前
【stm32】HAL库开发——CubeMX配置RTC,单片机工作模式和看门狗
stm32·单片机·嵌入式硬件·学习·实时音视频
码农编程录4 小时前
【c/c++3】类和对象,vector容器,类继承和多态,systemd,std&boost
c++
DIY机器人工房5 小时前
0.96寸OLED显示屏 江协科技学习笔记(36个知识点)
笔记·科技·stm32·单片机·嵌入式硬件·学习·江协科技
国科安芯5 小时前
【AS32系列MCU调试教程】SPI调试的常见问题解析
单片机·嵌入式硬件·性能优化·硬件架构·硬件工程
??tobenewyorker6 小时前
力扣打卡第二十一天 中后遍历+中前遍历 构造二叉树
数据结构·c++·算法·leetcode
oioihoii7 小时前
C++11 forward_list 从基础到精通:原理、实践与性能优化
c++·性能优化·list
m0_687399847 小时前
写一个Ununtu C++ 程序,调用ffmpeg API, 来判断一个数字电影的视频文件mxf 是不是Jpeg2000?
开发语言·c++·ffmpeg