当前位置: 首页 > article >正文

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占比
FreeRTOSGCC814,4085.50%15,14023.61%
GCC1214,1925.41%15,15223.64%
HarmonyOSGCC824,1289.20%19,13229.19%
(LiteOS_m)GCC1223,8369.09%19,14029.21%
RT-Thread NanoGCC827,49610.49%8,05612.29%
GCC1227,99210.33%8,06412.30%
TencentOSGCC812,1764.64%21,29632.49%
GCC1212,2004.65%21,30832.53%

  1. Flash总容量统一为256 KB,RAM总容量统一为64 KB。
  2. TencentOS原Flash总容量为288 KB,此处统一按256 KB重新计算占比。

推荐选择(基于统一资源基准):

  1. Flash需求优先
    TencentOS 的Flash占用最低(约4.65%),适合存储敏感型场景(如IoT设备),但RAM占比最高(约32.5%),需确保剩余RAM足够。

  2. RAM需求优先
    RT-Thread Nano 的RAM占比最低(约12.3%),适合实时性要求高且内存受限的场景(如传感器节点),但Flash占用较高(约10.5%)。

  3. 平衡型选择
    FreeRTOS 综合表现最佳,Flash占比约5.4%,RAM占比约23.6%,适合通用嵌入式场景(如工业控制、消费电子)。

  4. 生态与稳定性
    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,下篇更新


http://www.kler.cn/a/524110.html

相关文章:

  • Helm Chart 实战指南
  • 【Matlab高端绘图SCI绘图模板】第006期 对比绘柱状图 (只需替换数据)
  • (done) MIT6.S081 2023 学习笔记 (Day6: LAB5 COW Fork)
  • LeetCode热题100中 17. 20. 53. 78. 215.
  • k8s支持自定义field-selector spec.hostNetwork过滤
  • 使用 Redis 实现分布式锁的基本思路
  • 深入理解 C 语言函数指针的高级用法:(void (*) (void *)) _IO_funlockfile
  • 对游戏宣发的粗浅思考
  • LabVIEW开发故障诊断
  • 虚幻基础06:cast to
  • 讲解QoS队列调度算法
  • 【算法应用】基于A*-蚁群算法求解无人机城市多任务点配送路径问题
  • 用HTML、CSS和JavaScript实现庆祝2025蛇年大吉(附源码)
  • A星算法两元障碍物矩阵转化为rrt算法四元障碍物矩阵
  • SIPp的使用-SIPp的教程
  • INCOSE需求编写指南-第4节:需求和要求陈述以及需求和要求集的规则
  • 【Leetcode 每日一题】119. 杨辉三角 II
  • 06_改善播放效果--优先级与阻塞
  • Java定时任务实现方案(五)——时间轮
  • C++基础(1)
  • 处理 .gitignore 未忽略文件夹问题
  • 我的2024年终总结和2025年展望
  • DeepseekMath:超强开源数学模型(论文详解)
  • linux开启samba共享文件夹
  • Linux(NFS搭建)
  • 使用Ollama 在Ubuntu运行deepseek大模型:以deepseek-r1为例