fp-sdk是一个为嵌入式系统提供的软件发展工具包,包含设备IO驱动框架、公共头文件和各种实用工具组件,旨在简化嵌入式系统开发,提高代码复用性和可维护性。
| 名称 | 描述 |
|---|---|
| drivers | 设备IO驱动框架,包含核心驱动代码和具体设备驱动实现 |
| inc | 公共头文件,提供基础定义、接口声明和配置选项 |
| utilities | 实用工具组件库,提供各种通用功能支持 |
为工程提供"设备IO框架"以及"中间件"的支持:
- 添加inc目录到include路径
- 在工程中添加
FP_INCLDUE_BOARD_OPTIONS_FILE宏定义 - 根据实际硬件平台,移植
board_options.h文件 - 在用户代码中仅需包含
options.h头文件即可访问SDK所有功能
设备IO驱动框架,采用分层设计,将设备驱动与具体设备解耦,实现了驱动代码与硬件平台的独立性。
-
core/: 驱动框架核心代码,提供设备管理、驱动注册和通用API接口
- device.c/h: 设备管理核心实现,包含设备的打开、关闭、读写等API
- driver.c/h: 驱动管理核心实现,包含驱动和设备的匹配机制
- demo.sct: MDK分散加载文件示例,用于定义驱动和设备的内存区域
- readme.md: 详细的驱动框架使用说明和API文档
-
device/: 具体设备驱动实现,基于核心框架开发的各种硬件设备驱动
- analog.c/h: 模拟量输入输出驱动
- at24cxx.c/h: AT24CXX系列EEPROM驱动
- dev_can.c/h: CAN总线设备驱动
- hall.c/h: 霍尔传感器驱动
- i2c_bus.c/h: I2C总线驱动
- led_flash.c/h: LED闪光灯驱动
- lightc_map.c/h: 调光器驱动,支持多种调光曲线
- paj7620.c/h: PAJ7620手势识别传感器驱动
- pwmc.c/h: PWM控制器驱动
- roller_blind_control.c/h: 卷帘电机控制驱动
- readme.md: 各设备驱动的详细使用说明
-
readme.md: 驱动框架的整体介绍、移植说明和使用示例
公共头文件目录,包含SDK的基础定义、接口声明和配置选项,是用户与SDK交互的主要接口。
- board_options_sample.h: 板级配置文件示例,用户可基于此创建自己的板级配置
- clists.h: 循环链表实现,提供高效的节点插入、删除和遍历操作
- define.h: 基础定义和宏,包括数据类型、位操作、编译选项等
- errorno.h: 错误码定义,用于统一的错误处理机制
- event.h: 事件机制实现,用于线程间或中断与线程间的通信
- misc.h: 杂项工具函数,包括字符串操作、数学计算、内存操作等
- options.h: 主配置文件,包含内存管理、系统API、日志功能等配置,是用户代码唯一需要包含的头文件
- readme.md: 头文件的详细说明和使用建议
实用工具组件库,提供各种通用功能支持,包括通信协议、信号处理、命令行界面、数据管理等。
-
bus/: 总线通信相关实现,支持多种总线协议和通信模式
- example/: Modbus 485通信示例
- full/: 全双工总线实现
- half/: 半双工总线实现
- readme.md: 总线通信组件的详细说明
-
butter/: 巴特沃斯滤波器实现,支持低通、高通、带通和带阻滤波
- butter.c/h: 滤波器核心实现
- mybutter.m: Matlab脚本,用于生成滤波器系数
- readme.md: 滤波器的使用说明和示例
-
data_center/: 数据中心组件,用于数据处理、分发和管理
- account.c/h: 账号管理实现,支持数据订阅和发布机制
- data_center.c/h: 数据中心核心实现
- demo/: 数据中心使用示例
-
shell/: 轻量级命令行组件,提供交互式命令行界面
- cmds/: 内置命令实现
- inc/: 头文件目录
- shell.c/executor.c/parser.c/prompt.c: Shell核心实现
- Readme.md: Shell组件的使用说明和开发指南
-
export.c/h: 导出函数声明,提供统一的API导出机制
-
fplog.c/h: 日志功能实现,支持不同级别的日志输出和格式化
-
heap.c/h: 动态内存管理实现,支持自定义内存分配算法
-
pid.c/h: PID控制器实现,支持位置式和增量式PID算法
-
pingpong.c/h: 乒乓缓冲区实现,用于高效的数据传输
-
soft_timer.c/h: 软件定时器实现,支持多个定时任务
-
storage.c/h: 存储功能实现,支持数据的持久化存储
-
readme.md: 实用工具组件的整体介绍
- 使用struct命名结构体,而不是使用typedef struct。符合posix的命名规则,避免造成命名空间的污染。
本SDK采用MIT许可证,详见LICENSE文件。