简介:
CoreMark 是由 Embedded Microprocessor Benchmark Consortium (EEMBC) 开发的一种标准化嵌入式处理器基准测试工具。它通过模拟常见的嵌入式任务(如循环、矩阵操作、状态机和 CRC 校验)来评估处理器性能。CoreMark 的设计注重简单性、易移植性和准确性,确保了测试结果的可重复性和公正性。作为开源软件,CoreMark 可免费下载使用,且其测试结果可以提交至 EEMBC 的中央数据库,以便全球对比。广泛用于嵌入式系统开发、学术研究和行业标准制定,CoreMark 已成为评估嵌入式处理器性能的重要工具。
pref_counter 自带的coremark使用
CoreMark 代码可在该链接获取(https://github.com/eembc/coremark),移植适配只要把这几个文件加入工程编译,并参照其他平台适配core_portme.c core_portme.h文件即可,core_port_me.h 里定义了依赖平台的时间相关函数,对于时间的处理恰巧也是perf_counter 的一项功能,上一篇帖子(LVGL DMA2D/CPU搬运数据至framebuff性能比较)已经适配了perf_counter,perf_counter 的特性之一是适配了coremark 1.0
相关代码如下:(https://github.com/GorgonMeducer/perf_counter/tree/CMSIS-Pack/benchmark/coremark_port):
基于perf_counter 的基础上运行,coremark port 相关文件已经做好了,我们只要在工程内加入coremark 相关代码即可完成适配,基本就是喂到嘴边的服务了。
修改编译选项“Hight + Speed + No Size Constraints”cpu 频率配置为最高的480M跑分运行结果如下
跑分结果为2643 和官方的数据对比发现官方可以跑到3062还是有一定差距的,官方的跑分指令是放在ITCM data 存放在DTCM
我们修改link file 将代码运行在ITCM 数据在DTCM 链接脚本修改如下。
运行结果为2807分和官方的还差200分,不知道是不是编译器的差距的原因为跑到官方的数据,不过这个跑分相对结果也可以看出RA8 芯片的性能足够强。