项目计划 — RTOS 重构与双内核架构(2026年5月 - 8月)
基于 2026-05-12 「RTOS 重构与双内核架构方案研讨会」整理
一、目标与背景
1.1 总体目标
构建 Starry OS + RTOS 双内核架构,在异构多核平台上实现通用计算与实时控制的协同:
┌─────────────────────────────────────────────────┐
│ 应用层 │
│ 机器人控制 / AI 推理 / 传感器采集 / 用户交互 │
├──────────────────────┬──────────────────────────┤
│ Starry OS (通用) │ RTOS (实时) │
│ 复杂计算 / AI 推理 │ 电机控制 / 传感器采集 │
│ 文件系统 / 网络 │ 低延迟 / 确定性响应 │
├──────────────────────┴──────────────────────────┤
│ IPC / 共享内存通信层 │
│ 无锁队列 · 事件驱动 · 轮询机制 │
├─────────────────────────────────────────────────┤
│ 硬件抽象层 (HAL) │
│ QEMU virt / 星光二 (JH7110) │
└─────────────────────────────────────────────────┘二、阶段一:RTOS 内核完善(5月12日 - 6月15日)
在现有 rt-async 基础上补齐同步、通信和任务管理能力。
2.1 同步原语
- [ ]
Mutex<T>— 支持优先级继承的异步互斥锁(基础实现完成,优先级继承未实现)- [x]
MutexGuardRAII 自动释放 - [x] 测试:
mutex.rs
- [x]
2.2 任务与时间管理
- [x]
JoinHandle<T>— spawn 返回可 await 的句柄- [x]
TaskStorage增加 result slot + join waker - [x] 测试:
join_handle.rs
- [x]
三、阶段二:双内核通信机制(6月1日 - 6月30日)
实现 Starry OS 与 RTOS 之间的 IPC 通信,打通系统环路。
3.1 通信基础设施
- [ ] 无锁队列 (Lock-Free Queue)
- [ ] 基于 async 机制实现 MPSC 无锁队列
- [ ] 减少系统调用次数,轮询/事件驱动降低 IPC 开销
- [ ] 测试:多核间消息传递正确性与延迟
- [ ] 共享内存协议
- [ ] 定义双内核共享内存布局
- [ ] 双向独立信道避免竞争
- [ ] 测试:数据完整性验证
3.2 IPC 接口封装
- [ ] Notification — 信号通知机制
- [ ] Message Queue — 消息队列
- [ ] RPC 调用框架 — App → StarryOS → RTOS → 硬件 的完整调用链
3.3 6月30日初赛交付
- [ ] QEMU 上双内核启动并完成握手
- [ ] 基础 IPC 通信(Notification + Message Queue)可用
- [ ] 端到端 demo:用户态 App 通过 IPC 控制 RTOS 任务
- [ ] 性能基准测试报告(IPC 延迟、吞吐量)
四、阶段三:实体板移植与优化(7月1日 - 8月12日)
从 QEMU 仿真迁移到星光二实体板,优化驱动性能与实时性。
4.2 星光二 (JH7110) 驱动适配
- [ ] CLINT 定时器 + 软件中断
- [ ] UART 控制台
- [ ] GPIO 基本读写
- [ ] PLIC 外部中断
- [ ] 链接脚本 + M-mode 启动代码
- [ ] 测试:VF2 上运行 demo 验证
4.3 执行流与调度优化
- [ ] 执行流(协程/线程)与栈管理解耦
- 避免在中断处理中引入复杂的调度逻辑
- 长期方案:独立执行流管理器
- [ ] 动态加载与资源分配
- "按需启动"模式:系统启动后仅加载必要组件
- RTOS 可动态启动或接管特定核心
4.4 8月12日决赛交付
- [ ] 星光二板上双内核稳定运行
- [ ] 实体演示:机器人捡球等场景
- 备选:若硬件受限则通过 QEMU 展示性能数据
- [ ] 实时性指标(抢占延迟、IPC 延迟)