Skip to content

项目记录 - 2026年3月24日会议讨论

一、当前进展

1.1 Hart间通信机制已实现

架构

hart0 (M态): embassy_preempt ──┐
hart1 (S态): StarryOS          │
hart2 (S态): StarryOS          ├── IPI通信
hart3 (S态): StarryOS          │
hart4 (S态): StarryOS          ┘

已实现功能

  • embassy → StarryOS:定时发送IPI,StarryOS成功接收
  • StarryOS → embassy:通过 echo 1 > /dev/ipi 触发hart0中断

实现细节

  • 大核(hart0)写小核(hart1)的MSIP寄存器触发中断:0x02000004 = 1
  • 小核通过SBI中转,SBI特判核心0的MSI调用直接触发hart0的S态软件中断
  • 性能与原生SBI调用相当

1.2 共享内存

  • 共享内存地址:0xc8000000
  • 双向独立信道避免竞争

二、系统架构

2.1 核心架构(异构多核)

通信架构

2.2 调用流程

User App (StarryOS)

    │ ecall (系统调用)

StarryOS Kernel

    │ IPC (IPI + 共享内存)

embassy_preempt (Hart 0)

    │ 执行硬件操作

Hardware (GPIO/PWM/中断)

2.3 设计理念

  • StarryOS:复杂逻辑处理(文件系统、网络、用户交互)
  • embassy_preempt:实时硬件控制(GPIO、PWM、中断处理)

三、下一阶段工作

3.1 通信机制

  1. Notification - 信号通知机制
  2. Message Queue - 消息队列
  3. RPC/IPC - 远程过程调用

3.2 API封装

  • embassy提供的硬件操作API
  • 通过StarryOS系统调用暴露给用户应用

3.3 性能测试

  • 测试三种接口的延迟
  • 场景:App → embassy → GPIO操作
  • 完成性能测试报告