Yuan RTOS 的优缺点
优点
| 方面 | 说明 |
|---|---|
| 资源占用极低 | 默认配置、-Os 下内核仅增加约 640B RAM / 2476B ROM |
| 调度效率高 | 位图 + 双向链表实现 O(1) 就绪队列操作 |
| 实时性强 | 基于优先级的抢占式调度,同级任务时间片轮转 |
| 同步原语完备 | 信号量、递归互斥锁(优先级继承)、消息队列,均含 ISR 版本 |
| 资源可预测 | 全程静态分配、无动态内存,无碎片问题 |
| 可裁剪 | 配置开关可关闭日志、断言、参数检查及 IPC 模块 |
| 易于学习 | 代码精简、结构清晰,作为 RTOS 教学素材很合适 |
| 便于移植 | 内核与移植层分离,移植接口集中在 portable.h |
缺点与局限
| 方面 | 说明 |
|---|---|
| 移植覆盖少 | 官方目前仅提供 Cortex-M3 + GCC 移植,其它架构/编译器需自行移植 |
| 静态分配 | 任务栈、内核对象都需用户提供内存,灵活性不如动态分配 |
| 优先级数量 | 最多 32 级,超大并发场景可能不够用 |
| 功能精简 | 无事件组、无内存保护(MPU)、无低功耗 tickless、无内核追踪工具 |
| 日志能力有限 | 仅支持 %d %u %x %s %c,固定 128B 缓冲区,长日志会被截断 |
| 多核支持 | 仅面向单核 MCU,不支持 SMP |
| 生态较小 | 组件、驱动与社区资料相对主流 RTOS 少 |
适用场景
- 资源受限、RAM/ROM 紧张的 MCU 项目
- 需要确定性强、可裁剪内核的嵌入式产品
- 学习 RTOS 原理、阅读内核源码的入门项目
- 需要可控、可审计的轻量级内核
如果项目需要成熟的网络协议栈、文件系统、OTA 等组件生态,建议评估 FreeRTOS / RT-Thread 等更完整的方案。