Skip to content

快速上手 ​

前置条件 ​

  • 一块受支持的评估板:STM32G071RBT6(Cortex-M0+)、STM32F429ZIT6 (Cortex-M4)、STM32H743ZIT6(Cortex-M7)或 CH32V307VCT6 (RV32IMAC)。
  • 受支持的工具链:Keil uVision 5(armcc)、IAR EWARM 或 GCC/Clang-LLVM。其他工具链目前既不推荐也不支持。
  • RME 和弦微内核(M7M1) ——RVM 构建于其上。

仓库布局 ​

工程生成器(rvgen)按相对路径定位各仓库,请把它们放在同一根目录下 保持平级:

<root>/
├─ M7M02_Ammonite/     RVM 虚拟机监视器本体(Monitor、Platform、Guest/)
├─ M7M01_Eukaron/      RVM 所依赖的 RME 微内核
├─ M5P01_Prokaron/     RMP 实时内核(原生自带 RVM 平台层)
├─ FreeRTOS_V900/      客机系统目录树——移植源码在这里
├─ uCOSII_V293/
├─ uCOSIII_V308/
├─ RTThread_V411/
├─ DjyOS_V110/
└─ KLite_V521/

厂商提供的硬件抽象层软件包请到 M0P0_Library 仓库下载。

生成工程 ​

所有客机都由 M7M02_Ammonite Project/ 目录下的 RVM 工程生成器 rvgen 驱动。.rvp 工程文件选择芯片、平台与客机类型:

<Guest_Type>客机
RMPRMP
FRTFreeRTOS
UO2uC/OS-II
UO3uC/OS-III
RTTRT-Thread
DJYDjyOS(纪念性)
KLTKLite(纪念性)

有两个入口脚本:

  • benchmark.sh——生成标准基准测试镜像(即 性能测试表的数据来源)。
  • generate.sh——不带基准选项运行同一生成器;客机由 <guest>_main.c 中的普通应用启动,该文件被复制进工作区作为 main.c (带空闲停车钩子)。两个脚本必须给定相同的源码根目录。

生成器输出构建系统(GCC Makefile / Keil / IAR 工程),包含正确的头文件 搜索顺序,并把所需的移植文件复制进生成的工作区。

Windows 用户

请把二进制转 C 工具 (bincopy.exe)复制到编译器所在目录——Keil uVision 5 对应:

Keil\ARM\ARMCC\bin\bincopy.exe

Eclipse-GCC 则复制到 GCC 安装目录。

编译与运行 ​

  1. 用你的工具链打开生成的工程(GCC Makefile 版直接 make)并编译。
  2. 把镜像烧录到板卡。示例只用串口,且已为你配置好。
  3. 开始单步调试,或直接运行并观察串口控制台——基准测试会把结果打印在 那里(如 PASS: 0 faults, 9 items)。

手动集成客机 ​

Guest/ 库只包含新增文件——绝不覆盖官方内核源码,直接覆盖合并是 安全的:

  1. 把客机目录(如 FreeRTOS_V900/)覆盖到同版本官方目录树根部 (合并目录)。
  2. RVM 移植目录落在官方移植旁边,就像额外的官方移植一样(如 portable/GCC/ARM_A7M_RVM/)。
  3. 如客机有移植层开关则按需配置(见客机支持)。

不要直接改镜像

M7M02_Ammonite/Guest/ 是由 update-maintainer-only.sh 生成的镜像。 请修改源目录树(如 RTThread_V411/),然后在 Guest/ 目录下重新运行 该脚本。

延伸阅读 ​

  • 完整的用户手册(PDF) 深入讲解每个配置选项。生产部署时请尽量使用默认配置文件——内核细节 太多,不建议手工配置。
  • 超级调用参考列出客机可请求的全部特权操作。
  • 各客机的移植契约与实现策略: GUEST.md。

本软件是 EDI 的官方作品,属于公有领域。