Skip to content

FlyyingPiggy2020/fp-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fp-sdk

fp-sdk是一个为嵌入式系统提供的软件发展工具包,包含设备IO驱动框架、公共头文件和各种实用工具组件,旨在简化嵌入式系统开发,提高代码复用性和可维护性。

目录结构

名称 描述
drivers 设备IO驱动框架,包含核心驱动代码和具体设备驱动实现
inc 公共头文件,提供基础定义、接口声明和配置选项
utilities 实用工具组件库,提供各种通用功能支持

使用说明

为工程提供"设备IO框架"以及"中间件"的支持:

  1. 添加inc目录到include路径
  2. 在工程中添加FP_INCLDUE_BOARD_OPTIONS_FILE宏定义
  3. 根据实际硬件平台,移植board_options.h文件
  4. 在用户代码中仅需包含options.h头文件即可访问SDK所有功能

各目录详细说明

drivers

设备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: 驱动框架的整体介绍、移植说明和使用示例

inc

公共头文件目录,包含SDK的基础定义、接口声明和配置选项,是用户与SDK交互的主要接口。

  • board_options_sample.h: 板级配置文件示例,用户可基于此创建自己的板级配置
  • clists.h: 循环链表实现,提供高效的节点插入、删除和遍历操作
  • define.h: 基础定义和宏,包括数据类型、位操作、编译选项等
  • errorno.h: 错误码定义,用于统一的错误处理机制
  • event.h: 事件机制实现,用于线程间或中断与线程间的通信
  • misc.h: 杂项工具函数,包括字符串操作、数学计算、内存操作等
  • options.h: 主配置文件,包含内存管理、系统API、日志功能等配置,是用户代码唯一需要包含的头文件
  • readme.md: 头文件的详细说明和使用建议

utilities

实用工具组件库,提供各种通用功能支持,包括通信协议、信号处理、命令行界面、数据管理等。

  • 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: 实用工具组件的整体介绍

TODO LIST

  • 使用struct命名结构体,而不是使用typedef struct。符合posix的命名规则,避免造成命名空间的污染。

许可证

本SDK采用MIT许可证,详见LICENSE文件。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages