type
date
slug
category
icon
password
嵌入式框架,搭建设备框架,引入抽象层,隔离设备和驱动,建立统一接口。
为用户建立规范、版本管理、单元测试、文档生成提供范例
通过引入范例,循序渐进为嵌入式知识提供深入分析和解读
call
A.U.X Embedded FrameWork
aux embedded framework
agile(敏捷). universal(通用). x(无限可能)
aux_dev_open
embedded dev frame edf
embedded X frame EMXFrame emx
MicroFrame
SiLeap
embedded micro frame
文件夹
名称 | 功能 |
bsp | 板级支持包 |
components | 组件 |
common | define、assert、log、export、 |
device | 设备文件 |
driver | 驱动文件,上位机开发仅模拟层,后面需移植到对应平台 |
os | 操作系统接口,建立CMSIS OS V2 接口 |
test | 单元测试 |
docs | 文档 |
lib | crc、hash_table、data structure |
tools | 一些脚本工具,用于环境搭建、代码格式化、单元测试、工程转换、调试、CI、配置脚本、构建脚本等 |
嵌入到CubeMX中,与Core、Drivers、Middleware同文件夹
- 其中bsp包拷贝到顶层目录,
设备/组件支持一览表
设备/组件 | 计划 | 预览 | 稳定 | 文档 |
ADC | ㅤ | ㅤ | [√] | [√] |
CAN | ㅤ | [√] | ㅤ | ㅤ |
DAC | ㅤ | ㅤ | [√] | [√] |
I2C | ㅤ | ㅤ | [√] | [√] |
Soft-I2C | ㅤ | ㅤ | [√] | [√] |
Pin | ㅤ | ㅤ | [√] | [√] |
PWM | ㅤ | ㅤ | [√] | [√] |
Serial | ㅤ | ㅤ | [√] | [√] |
SPI | ㅤ | ㅤ | [√] | [√] |
Timer | ㅤ | ㅤ | [√] | [√] |
msh | ㅤ | ㅤ | [√] | [√] |
LCD | [√] | ㅤ | ㅤ | ㅤ |
Senser | [√] | ㅤ | ㅤ | ㅤ |
建立log,数据类型,define, export assert 机制
移植gtest框架
头文件安排
emf_lib.h | 对外提供库所有接口 | ㅤ | ㅤ |
emf_dev.h | ㅤ | 包含emf_api.h | ㅤ |
emf_api.h | 环形缓冲区、AVL 和设备框架接口,以内存分配,格式化输出等接口 | 包含emf_def.h和emf_service.h | ㅤ |
emf_service.h
emf_export.h | 链表操作,常用宏定义(数组长度,字符串拼接,内存对齐,位操作,最值,数值交换,限幅操作) | 包含emf_def.h | service.c |
emf_def.h | 枚举变量、Export定义、堆、列表、环形缓冲区、AVL 数据结构定义,设备框架相关定义 | 包含emf_config.h | emf_device.c |
emf_config.h | 宏定义配置,功能开关 | ㅤ | ㅤ |
kconfig
export 机制
自动初始化机制
程序代码截取
搭建设备层框架
驱动层 定义
static struct emf_serial_ops serial_drv_ops
包含在 static struct emf_drv pin_drv
注册到设备驱动框架中。
设备驱动框架中定义私有操作
emf_serial_ops
,由驱动层注册上来。调用驱动层操作,编写设备层统一接口,注册到设备层中。emf_pin_ops
只是虚拟接口,虚函数。必须驱动初始化后,指针不为空方能使用设备层中通过描述符管理多设备,通过路径找到设备后,使用设备驱动框架提供的接口操作设备。
定义serial 驱动结构体
drv_serial_data
,并初始化数据。由于实在hal库上移植一层,因此无需定义引脚号、时钟、DMA等。- 句柄
- 实例
- 中断资源
定义serial设备
serial_dev[]
。实现串口驱动
emf_drv serial_drv[]
,包括驱动操作(实现串口操作emf_serial_ops serial_drv_ops
),硬件数据。注册到设备框架层
emf_serial_register(&serial_dev[i], serial_path[i], &serial_drv[i]);
移植操作系统
- Author:felixfixit
- URL:http://www.felixmicrospace.top/1384d032dcc18033ad6fee1e9f5bd590
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!