文档中心 · 问答中心 · 组件库 · 在线工具库 · 视频 · 贡献指南 · GitHub · Gitee
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 或更新的编译器。
- esp32 (基于 esp-idf v5.0.7)
- ws63 (HI3863 芯片)
- bs21 (HI2821 芯片)
- linux 模拟器
关于不同芯片如何搭建 XFusion 的开发环境,请参考 《XFusion 入门指南》。
详细的使用方法请参考上面入门指南的链接,这里仅列举一些 XFusion 项目开发中常用的命令:
-
激活 XFusion
cd xfusion # 进入 XFusion 文件夹 . ./export.sh <target> # 激活指定的芯片
-
选择示例
cd examples/system/log # 进入 log 示例文件夹
-
配置
xf menuconfig # 配置菜单 -
编译
xf build # 编译当前示例 -
烧录
xf flash # 烧录到芯片中(需要平台对接支持) -
监视器
xf monitor <port> # 查看串口
如果目标平台需要使用原生 IDE,请在上面的"配置"步骤之后执行以下命令:
-
导出
xf export <工程名> # <工程名> 为导出的工程的名字
-
之后用原生平台 IDE 打开工程,完成编译烧录等步骤。
-
更新导出的工程
xf update <工程名> # <工程名> 为前面导出的工程的名字
其他详细命令可以查看《xf build 构建脚本命令》。
请注意:
在 XFusion 开发过程中,XFusion 的 xf_main() 代替了原生的 main 函数的功能。用户需要在 xf_main() 函数内开发,且 xf_main() 不应阻塞,否则会导致其他协作式任务无法执行。
XFusion 目前提供了以下几类示例:
- get_started-快速入门示例
- misc-杂项
- osal-操作系统抽象层示例
- peripherals-外设示例
- protocols-协议示例
- storage-存储示例
- system-系统示例
- task-协作式多任务示例
- 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 所作出的所有贡献!
年度 MVP 贡献者
体验官
贡献官
- Kevincoooool(提供 p4 开发板)
- keysking(授权在线小工具)