CH32系列CoreMark跑分使用例程

一、CoreMark简述

 CoreMark是一个广受认可的嵌入式处理器性能基准测试程序。您可以把它理解为嵌入式CPU领域的“考试试卷”或“跑分软件”。它的核心价值在于提供一个标准化、

可量化的方法,来衡量和比较不同处理器的核心性能。与之前更复杂的Dhrystone测试不同,CoreMark设计得小巧、便携,并且避免被编译器“针对性优化”而失真。

它的测试代码主要包含以下几种算法:

1.列表处理:模拟指针操作和数据查找

2.矩阵操作:模拟常见的数学运算。

3.状态机:模拟控制逻辑和流程。

4.CRC循环冗余校验:模拟数据完整性检查。

二、意义与作用

1. 提供客观的性能比较基准

CoreMark是行业内衡量MCU性能的常用基准测试工具,提供一套标准化方法来测试单位时间内运行的CoreMark程序次数。测试得分数值越大通常说明MCU性能越好

  • 作用:CoreMark提供了一个统一的“标尺”。您可以直接对比Chip A和Chip B的CoreMark分数,从而对它们的核心计算能力有一个直观、公正的了解。

  • 示例:芯片A主频200MHz,CoreMark为500;芯片B主频180MHz,CoreMark为520。这说明在相同或更低的主频下,芯片B的架构效率更高,实际性能更强。

2. 评估编译器效率

同一个处理器,使用不同的编译器(如GCC, LLVM, IAR)或不同的编译优化选项(如-O2, -O3, -Os),编译出的代码效率也不同。

  • 作用:开发者可以通过运行CoreMark来评估和选择最适合的编译器及优化选项,从而最大限度地发挥处理器的性能。

3. 辅助芯片选型

在项目初期,选择一款性能合适的芯片至关重要。性能过剩会造成成本浪费,性能不足则会导致产品失败。

  • 作用:通过查阅不同芯片的CoreMark分数,工程师可以快速筛选出符合项目性能要求的候选芯片,为后续的详细评估缩小范围。

4. 验证芯片性能

芯片厂商公布的数据手册上的CoreMark分数通常是在理想条件下测试的。开发者可以在自己的实际板卡上运行CoreMark测试。

  • 作用:验证硬件设计是否正确,以及实际运行环境下的性能是否与官方数据相符。

    image

                  部分CH系列CoreMark跑分一栏

三、测试CoreMark库方法

在CoreMark官网下载coremark核心库文件,添加入对应EVT工程,排除编译工程中原来的main.c,由启动文件跳到coremark的main中测试,

imageimage

2.更改系统时钟至最大主频,并参照帖子开启CH32V30x的硬件乘除法,没有此功能的芯片忽略

image

3.在core_portme.c将#define CLOCKS_PER_SEC             (144000000)

image

 3.将运行时间调节到10s以上,否则CoreMark运行失败。由于在CoreMark源代码中,主要计算在 coremark.c

的 get_seed() 和结果计算部分:所以迭代次数要调整,在当前ITERATIONS=4000的情况下,不符合预期,

需要将#define ITERATIONS (8000)

image

 4.编译运行看结果

CoreMark得分与官网资料提供468无所差

aa11f1a3b1533f58b91b25c5bcf3c668

 

 

 

 

posted @ 2025-11-01 16:10  WCH_CH32  阅读(117)  评论(0)    收藏  举报