CH32V303RCT6使用RTOS的选择对比
目录
- 0.环境
- 1.freertos
- 1.1 GCC8
- 1.2 GCC12
- 2.HarmonyOS
- 2.1 GCC8
- 2.2 GCC12
- 3. RT-Thread Nano
- 3.1 GCC8
- 3.2 GCC12
- 4. TencentOS
- 4.1 GCC8
- 4.2 GCC12
- 5. 总结
- **对比表格**
- **推荐选择**(基于统一资源基准):
- **总结**:
0.环境
MRS2
官方CH32V307EVT,V2-7
分别以GCC8、GCC12查看编译结果大小
这里使用CH32V303RCT6,在ch32v30x.h
中设置#define CH32V30x_D8 /* CH32V303x */
添加 --print-memory-usage
打印编译结果大小
1.freertos
1.1 GCC8
1.2 GCC12
2.HarmonyOS
2.1 GCC8
2.2 GCC12
3. RT-Thread Nano
3.1 GCC8
3.2 GCC12
4. TencentOS
4.1 GCC8
4.2 GCC12
5. 总结
这里使用DeepSeek来生成对比表格:
以下是统一基于FLASH 256KB、RAM 64KB计算的RTOS资源占用对比表格及推荐选择:
对比表格
RTOS | 编译器 | Flash使用 (B) | Flash占比 | RAM使用 (B) | RAM占比 |
---|---|---|---|---|---|
FreeRTOS | GCC8 | 14,408 | 5.50% | 15,140 | 23.61% |
GCC12 | 14,192 | 5.41% | 15,152 | 23.64% | |
HarmonyOS | GCC8 | 24,128 | 9.20% | 19,132 | 29.19% |
(LiteOS_m) | GCC12 | 23,836 | 9.09% | 19,140 | 29.21% |
RT-Thread Nano | GCC8 | 27,496 | 10.49% | 8,056 | 12.29% |
GCC12 | 27,992 | 10.33% | 8,064 | 12.30% | |
TencentOS | GCC8 | 12,176 | 4.64% | 21,296 | 32.49% |
GCC12 | 12,200 | 4.65% | 21,308 | 32.53% |
注:
- Flash总容量统一为256 KB,RAM总容量统一为64 KB。
- TencentOS原Flash总容量为288 KB,此处统一按256 KB重新计算占比。
推荐选择(基于统一资源基准):
-
Flash需求优先:
TencentOS 的Flash占用最低(约4.65%),适合存储敏感型场景(如IoT设备),但RAM占比最高(约32.5%),需确保剩余RAM足够。 -
RAM需求优先:
RT-Thread Nano 的RAM占比最低(约12.3%),适合实时性要求高且内存受限的场景(如传感器节点),但Flash占用较高(约10.5%)。 -
平衡型选择:
FreeRTOS 综合表现最佳,Flash占比约5.4%,RAM占比约23.6%,适合通用嵌入式场景(如工业控制、消费电子)。 -
生态与稳定性:
HarmonyOS (LiteOS_m) 在资源占用和功能扩展性间平衡,适合需要丰富中间件支持的复杂应用(如智能家居)。
总结:
- 极致优化场景:
- Flash敏感:TencentOS(需注意RAM限制)。
- RAM敏感:RT-Thread Nano(需接受较高Flash占用)。
- 通用场景:
- FreeRTOS(资源均衡、生态成熟)。
- HarmonyOS(功能扩展性强)。
- 编译器选择:GCC12在多数情况下略优(如FreeRTOS和HarmonyOS的Flash占用更低)。
这里RT-Thread 的默认工程配置可能启用了较多功能(如 FinSH),而其他 RTOS(如 FreeRTOS)默认仅包含核心功能,本次先选用了RT-Thread Nano。
不过官方EVT包里的应该是3.1.5,目前有最新的V4.1.1,下篇更新