Skip to content

支持平台 ​

RMP 的可移植性来自设计而非偶然:同一份内核源码可以构建到十六个架构家族, 从 8 位 AVR 一直到 Cortex-M55 与 RISC-V 微控制器。每个移植都保持平台层薄, 让通用内核接受真实硬件的检验,而不是躲在庞大的板级支持包后面。

架构家族 ​

家族示例芯片工具链RVM 客机
ARMv6-MSTM32F030F4、STM32G071RB、STM32L071CB、HC32L136K8Keil、IAR、GCC支持
ARMv7-MSTM32F103/F107/F303/F405/F429/F767/H743Keil、IAR、GCC支持
ARMv8-M新唐 M2351KIAAE(M23)、STM32N657X0(M55)Keil、IAR、GCC—
ARMv7-RTI TMS570LS0432(R4)、TMS570LC4357(R5)CCS—
RV32沁恒 CH32V307(IMAC/IMAFC)、SiFive FE310GCC、MounRiver、FreedomStudio支持
AVRATmega328P、ATmega1284P、ATmega2560Atmel Studio、GCC—
MSP430MSP430F149、MSP430FR5994、MSP430G2553CCS—
RL78瑞萨 R5F104PJCCRL / E2 Studio—
PIC24PIC24FJ128GA010MPLAB XC16—
dsPIC33EdsPIC33EP512MU810MPLAB XC16—
MIPS32PIC32MZ2048EFM100MPLAB XC32—
C28xTMS320F2812、TMS320F28335CCS—
MOS 6502RP2A03(红白机 / NES)CC65—
unSP凌阳 SPCE061AUNSP IDE—
Z80Z84C0004 / TP-801Z88DK—
x86 Linux通过 ptrace 运行的 32 位 LinuxGCC—

构建工程 ​

下表中的每个目录都是一个完整、可直接打开的工程。部分工程所需的厂商 HAL 位于 M0A00_Library 仓库。

工具链工程说明
Keil uVision 5RVMDK-*(13 个)Cortex-M0/M0+/M3/M4/M7/M23/M55,含一个 F429 覆盖率工程
IAR EWARMEWARM-*(5 个)Cortex-M23/M4/M7/M55
GCC MakefileGCCMF-*(14 个)Cortex-M 与 RISC-V,另含 GCCMF-X86L(Linux)与 lwIP 变体
MounRiver StudioMRS-*(2 个)CH32V307,带与不带 lwIP
Code Composer StudioCCS-*(7 个)MSP430、MSP430X、C28x、Cortex-R4/R5
MPLAB XMPLAB-*(3 个)PIC24、dsPIC33E、PIC32MZ
Atmel StudioATS-*(3 个)ATmega328P/1284P/2560
E2 StudioE2STUDIO-*(1 个)RL78
FreedomStudioFreedomStudio-*(1 个)SiFive FE310(RV32)
CC65CC65MF-*(1 个)红白机 / NES
UNSP IDEUNSPIDE-*(1 个)SPCE061A
静态分析CPPCHECK-LINTcppcheck / PC-lint 集成

全部工程可在 Project 目录 浏览——每个文件夹都有自己的 README,说明该板卡的构建与运行方法。

工具链 ​

  • GCC / Clang-LLVM
  • Keil uVision(ARMCC / ARMCLANG)
  • IAR EWARM(ICCARM)
  • Code Composer Studio
  • MPLAB X XC16 / XC32
  • 厂商 IDE:Atmel Studio、E2 Studio、MounRiver Studio、FreedomStudio、 UNSP IDE、CC65、Z88DK

其他工具链目前不在推荐与支持范围内。由于内核是纯 C99 加一层很小的平台代码, 新增工具链通常只需要提供上下文切换汇编和 tick 来源。

虚拟化移植 ​

有三个平台层面向 RVM 而不是裸机:

平台层内核使用者
Include/Platform/A6M_RVMARMv6-MSTM32L071CB
Include/Platform/A7M_RVMARMv7-MSTM32F405RG、STM32F767IG
Include/Platform/RV32P_RVMRV32CH32V307

虚拟化构建保持内核 ABI 不变,所有特权操作经由监视器完成,因此同一套基准 测试可以同时测量裸机与虚拟化性能。监视器一侧见 RVM 项目。

刻意的边界 ​

RMP 有意只面向微控制器和单核。PIC18(硬件栈)、AVR32(已衰落)、x86-64 与 Cortex-A(带 MMU)不在范围内;多核微控制器通常核心不对称且没有缓存一致性, 因此也不支持。各种情况的推荐替代方案见 为什么选择 RMP。

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

GitHub·Discord·QQ 群 1038895132·rtospro.com