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中测试,


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

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

3.将运行时间调节到10s以上,否则CoreMark运行失败。由于在CoreMark源代码中,主要计算在 coremark.c
的 get_seed() 和结果计算部分:所以迭代次数要调整,在当前ITERATIONS=4000的情况下,不符合预期,
需要将#define ITERATIONS (8000)

4.编译运行看结果
CoreMark得分与官网资料提供468无所差


浙公网安备 33010602011771号