Skip to content
 
 

Repository files navigation

logo

XFusion

轻量级、跨平台、组件式的嵌入式开发框架

文档中心 · 问答中心 · 组件库 · 在线工具库 · 视频 · 贡献指南 · GitHub · Gitee

contributors forks stars issues pulls license

XFusion 简介

XFusion,来自 X(Embedded Kits System) —— 嵌入式套件系统,是一个融合多个嵌入式平台的软件开发工具包(SDK),为开发者提供统一且便于开发的嵌入式开发环境

一次开发,多端部署

基于 XFusion 开发应用时,无需花费过多时间及精力在移植、驱动等与平台底层相关的工作,可以更专注于应用功能的设计与实现。

得益于 XFusion 统一的接口,基于 XFusion 开发的应用可以快速的在不同平台上切换,敏捷评估平台是否符合应用需求。

Fusion,意为联合、聚变,即 XFusion 的愿景:联合分散平台,凝聚无限能量。

特性

  • 所有子模块可作为软件中间件独立移植
  • 全部由 C 编写完成,遵从 C99 语法
  • 丰富详实的例程
  • 丰富强大的组件库
  • 采用 Apache2.0 开源协议
  • 支持导出原生工程,可以使用 keil 等原生 IDE 开发调试
  • 使用基于 python 的 xf_build 生成对应平台的构建脚本,简化构建方法,统一构建语言
  • 使用 menuconfig 可视化配置模块
  • 拥有包管理器,可以通过命令行下载第三方组件包

硬件要求

  • 32 或 64 位微控制器或处理器。

  • 建议使用 >16 MHz 时钟速度。

  • 闪存/ROM:

    > 64 kB 用于非常重要的组件 (> 建议使用 180 kB)。

  • RAM:

    • 静态 RAM 使用量:~2 kB,取决于使用的功能和对象类型。
    • 堆: > 2kB (> 建议使用 8 kB 以上)。
  • C99 或更新的编译器。

已支持的平台

  1. esp32 (基于 esp-idf v5.0.7)
  2. ws63 (HI3863 芯片)
  3. bs21 (HI2821 芯片)
  4. linux 模拟器

使用 XFusion 进行开发

关于不同芯片如何搭建 XFusion 的开发环境,请参考 XFusion 入门指南

快速参考

详细的使用方法请参考上面入门指南的链接,这里仅列举一些 XFusion 项目开发中常用的命令:

  1. 激活 XFusion

    cd xfusion              # 进入 XFusion 文件夹
    . ./export.sh <target>  # 激活指定的芯片
  2. 选择示例

    cd examples/system/log  # 进入 log 示例文件夹
  3. 配置

    xf menuconfig           # 配置菜单
  4. 编译

    xf build                # 编译当前示例
  5. 烧录

    xf flash                # 烧录到芯片中(需要平台对接支持)
  6. 监视器

    xf monitor <port>       # 查看串口

如果目标平台需要使用原生 IDE,请在上面的"配置"步骤之后执行以下命令:

  1. 导出

    xf export <工程名>      # <工程名> 为导出的工程的名字
  2. 之后用原生平台 IDE 打开工程,完成编译烧录等步骤。

  3. 更新导出的工程

    xf update <工程名>      # <工程名> 为前面导出的工程的名字

其他详细命令可以查看《xf build 构建脚本命令》。

请注意:

在 XFusion 开发过程中,XFusion 的 xf_main() 代替了原生的 main 函数的功能。用户需要在 xf_main() 函数内开发,且 xf_main() 不应阻塞,否则会导致其他协作式任务无法执行。

示例

XFusion 目前提供了以下几类示例:

  1. get_started-快速入门示例
  2. misc-杂项
  3. osal-操作系统抽象层示例
  4. peripherals-外设示例
  5. protocols-协议示例
  6. storage-存储示例
  7. system-系统示例
  8. task-协作式多任务示例
  9. wireless-无线通信示例

可以点击 示例详情 查看更详细的情况。

一旦找到了需要的示例,便可以进入该目录,执行配置和构建操作。

如果要基于示例工程开始你自己的项目,建议将示例工程复制到 XFusion 目录之外。

组件

名称 描述
xf_fal flash 抽象层
xf_hal 硬件抽象层
xf_heap 动态内存
xf_init 自动初始化工具
xf_log 日志系统
xf_nal 网络接口抽象层
xf_net_apps 网络应用组件
xf_osal 系统抽象层
xf_ota 空中升级接口
xf_sys 系统基础接口
xf_task 协作式调度器
xf_utils 通用工具集
xf_vfs 虚拟文件系统
xf_wal 无线抽象层
xf_build 跨平台构建工具

开源证书

XFusion 及其子模块全部使用 Apache License 2.0 许可证开源。

贡献

  • 如果你有兴趣为 XFusion 作贡献,请先阅读 《贡献指南》。

其他

  • 如果你对 XFusion 的设计背景、详情感兴趣,可以看看《XFusion 详情》以及《深入了解》。
  • 可以前往 问答中心 提问,挖掘社区资源。
  • 如果你在使用中发现了错误或者需要新的功能,请先查看 Issues,确保该问题没有重复提交。
  • 如果你想和 XFusion 开发者交流,欢迎加入我们的 QQ 群! QQ: 993422109

鸣谢

感谢各位贡献者为 XFusion 所作出的所有贡献!

贡献记录 (2024 年)

年度 MVP 贡献者

体验官

贡献官

About

Lightweight embedded development platform

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages