快速上手
前置条件
- 一块受支持的评估板: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> | 客机 |
|---|---|
RMP | RMP |
FRT | FreeRTOS |
UO2 | uC/OS-II |
UO3 | uC/OS-III |
RTT | RT-Thread |
DJY | DjyOS(纪念性) |
KLT | KLite(纪念性) |
有两个入口脚本:
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.exeEclipse-GCC 则复制到 GCC 安装目录。
编译与运行
- 用你的工具链打开生成的工程(GCC Makefile 版直接
make)并编译。 - 把镜像烧录到板卡。示例只用串口,且已为你配置好。
- 开始单步调试,或直接运行并观察串口控制台——基准测试会把结果打印在 那里(如
PASS: 0 faults, 9 items)。
手动集成客机
Guest/ 库只包含新增文件——绝不覆盖官方内核源码,直接覆盖合并是 安全的:
- 把客机目录(如
FreeRTOS_V900/)覆盖到同版本官方目录树根部 (合并目录)。 - RVM 移植目录落在官方移植旁边,就像额外的官方移植一样(如
portable/GCC/ARM_A7M_RVM/)。 - 如客机有移植层开关则按需配置(见客机支持)。
不要直接改镜像
M7M02_Ammonite/Guest/ 是由 update-maintainer-only.sh 生成的镜像。 请修改源目录树(如 RTThread_V411/),然后在 Guest/ 目录下重新运行 该脚本。
