Skip to content

性能测试 ​

下列所有数据均在真实硬件上、用同一套基准测试程序、覆盖表中全部 工具链/RTOS 组合实测得到。编译器选项均为最高优化等级、按时间优化 (GCC -O3,Keil/IAR 取其最高档)。

  • Cortex-M0+ 在 STM32G071RBT6 上测得。
  • Cortex-M4 在 STM32F429ZIT6 上测得。
  • Cortex-M7 在 STM32H743ZIT6 上测得。
  • RV32IMAC(RISC-V) 在 CH32V307VCT6 上测得。

Flash 与 SRAM 为客机镜像占用(KiB)(代码+数据 / 数据+bss);其余各列 均为 CPU 时钟周期数。这里的数值是运行完整系统基准测试的典型值—— 最小值在系统尺寸上几乎没有任何实际意义。

纪念性移植 ​

单组合纪念性移植:Cortex-M7 + GCC + STM32H743ZIT6。

架构工具链系统Flash (KiB)SRAM (KiB)YieldMailSemMail/ISem/IMem
Cortex-M7GCCDjyOS27.4963.381017148889218731220288
Cortex-M7GCCKLite11.6520.27291140237919649962751

实用性移植 ​

Cortex-M0+ — STM32G071RBT6 ​

工具链系统Flash (KiB)SRAM (KiB)YieldMailSemMail/ISem/IMem
Keil uVision 5RMP16.713.8846578368116771572N/A
...FreeRTOS12.749.57433949102317891808843
...uC/OS-II11.866.73N/A10621039380014842638
...uC/OS-III13.638.098631117114321252156363
...RT-Thread18.698.27950158113172760246413221
IAR EWARMRMP12.383.8851187677017641642N/A
...FreeRTOS11.299.57432944107818041859944
...uC/OS-II10.626.73N/A10891067489910722737
...uC/OS-III11.898.088921154118721612189360
...RT-Thread13.158.261031168014152859258913861
GCCRMP22.722.8850788377317461680N/A
...FreeRTOS15.388.574559861108185919261012
...uC/OS-II13.085.75N/A11111090152610972876
...uC/OS-III15.387.098711144118521882246396
...RT-Thread18.577.271080175514503042269414899

Cortex-M4 — STM32F429ZIT6 ​

工具链系统Flash (KiB)SRAM (KiB)YieldMailSemMail/ISem/IMem
Keil uVision 5RMP22.7237.0633651945212781176391
...FreeRTOS14.7341.5730861277613941428527
...uC/OS-II13.097.73N/A67164723037731425
...uC/OS-III15.509.0950469171315701588196
...RT-Thread20.348.275321036824194817437307
IAR EWARMRMP14.2936.0737660255115121438403
...FreeRTOS11.4840.5731664883315921667549
...uC/OS-II10.756.73N/A70869624838241521
...uC/OS-III11.658.0860180982918521868207
...RT-Thread13.787.266121053852223120207646
GCCRMP24.2036.0741670955214341344382
...FreeRTOS15.4440.5737272688215441611724
...uC/OS-II12.486.75N/A72969326298491597
...uC/OS-III14.678.0958081284917591820227
...RT-Thread17.637.276481173893223619757764

Cortex-M7 — STM32H743ZIT6 ​

工具链系统Flash (KiB)SRAM (KiB)YieldMailSemMail/ISem/IMem
Keil uVision 5RMP22.7337.06244384370920811284
...FreeRTOS15.0641.57229494595954987347
...uC/OS-II13.357.73N/A4364451503584849
...uC/OS-III15.759.0941059059412271252141
...RT-Thread20.528.28457798651153713915197
IAR EWARMRMP14.3736.072724594121030985284
...FreeRTOS11.5040.5722052660911221109363
...uC/OS-II10.836.73N/A5415121674654938
...uC/OS-III11.708.0841159262012821313151
...RT-Thread13.857.26424829675158514415710
GCCRMP24.2936.07248476414886939283
...FreeRTOS15.2940.5722551159610201036354
...uC/OS-II12.496.75N/A4894681544569909
...uC/OS-III14.668.0940456157812161291150
...RT-Thread17.757.27465819674157014356402

RV32IMAC(RISC-V)— CH32V307VCT6 ​

工具链系统Flash (KiB)SRAM (KiB)YieldMailSemMail/ISem/IMem
GCCRMP29.6125.2932249943717191652360
...FreeRTOS17.5524.7731958063017781827440
...uC/OS-II16.286.75N/A57155925915701337
...uC/OS-III16.728.0947860661120502079182
...RT-Thread19.459.77533846701242922806003

指标定义 ​

指标含义
Yield线程间切换(让出 CPU)的时间
Mail两线程间邮箱通信时间
Sem两线程间信号量通信时间
Mail/I从中断向邮箱发送的时间
Sem/I从中断向信号量发送的时间
Mem内存操作时间(如分配/释放)
  • uC/OS-II 的 Yield 为 N/A:每优先级仅一个任务,等优先级线程间让出 没有实测意义。
  • RMP 客机的 Mem 为 N/A:RMP 在本基准之外单独测试其内存子系统。
  • 虚拟化 FreeRTOS 的线程切换与中断响应约为裸机版的 4 倍,仍比 RT-Linux 快约 25 倍——详见为什么需要虚拟化。

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