介绍
作者
ccb5
本文主要介绍 XFusion 相关内容
什么是 XFusion ?
XFusion,来自 X(Embedded Kits System) —— 嵌入式套件系统,是一个融合多个嵌入式平台的软件开发工具包(SDK),为开发者提供统一且便于开发的嵌入式开发环境。
开发者基于 XFusion 开发应用时,无需花过多时间及精力在移植(像 RTOS),基础驱动、基础功能的实现等与平台底层相关的工作,可以更专注于应用功能的设计与实现,并且,在其上开发的应用,可以在多平台上快速迁移、切换。(一次开发,多端部署)
Fusion,意为融合、联合,且有核聚变的意思,表达了 XFusion 的愿景:让分散的平台融合在一起,凝聚出更大的能量,更好地支持开发者实现他们的想法。
特性
- xf_build 跨平台构建工具;
- xf_log log 打印调试工具;
- xf_task 协作式调度器;
- xf_hal 基础硬件抽象层;
- xf_heap 内存管理工具;
- xf_osal 系统抽象层;
- xf_utils 基础功能;
- 所有子模块可作为软件中间件独立移植
- 全部由 C 编写完成,遵从 C99 语法;
- 丰富详实的例程;
- 丰富强大的组件库;
- 采用 Apache2.0 开源协议;
- 支持导出原生工程,可以使用 keil 等原生 IDE 开发调试;
硬件要求
16、32 或 64 位微控制器或处理器。
建议使用 >16 MHz 时钟速度。
闪存/ROM:
> 64 kB 用于非常重要的组件 (> 建议使用 180 kB)。
RAM:
- 静态 RAM 使用量:~2 kB,取决于使用的功能和对象类型。
- 堆: > 2kB (> 建议使用 8 kB 以上)。
C99 或更新的编译器。
以下结果为 XFusion 基础组件大小,排除了对接部分的大小,对接部分大小见基础组件大小详情
。
描述 | 优化等级 | flash(bytes) | ram(bytes) |
---|---|---|---|
空间优先 | Os | 4,209 | 385 |
Og | 4,742 | 385 | |
调试 | Og | 15,043 | 4,484 |
空间优先
- 关闭 log
- 关闭 xf_heap 静态数组(静态内存池设为 1 byte)
调试
- 开启 log
- xf_heap 静态数组大小设为 4KB
目前支持的平台
- esp32 (基于 esp-idf v5.0)
- ws63 (HI3863 芯片)
- bs21 (HI2821 芯片)
后续计划支持:
- linux
- esp32c3
- stm32
开源证书
Apache License 2.0
XFusion 及其子模块全部使用 Apache License 2.0 协议
存储库布局
重要
所有仓库均能独立移植
- github:
- gitee: