前面跑过浮点性能测试whetstone, 这次试一把coremark,其实coremark在whetsone之后就跑过,但写文章时搜索看到21ic论坛有好几篇coremark移植文章,就没什么兴致了。不过事情做了,写一写吧,也算给AT32F405的测评收个尾。另本文特别之处在于linux下用cmake模板环境搭建的coremark测试工程,坛子里其它移植都是用IDE的,也算是新颖性吧。
coremark测试工具就不介绍了,一句话概括就是:是一个比较公认的cpu性能测试工具。移植方法大同小异,简单说一说。
coremark代码下载
git clone https://github.com/eembc/coremark
以whetsone为模板创建coremark工程
cp -a project/at_start_f405/examples/whetstone/ project/at_start_f405/examples/coremark/
然后删除whet*相关源码文件。
拷贝coremark相关文件
把前面clone下的coremark中顶级目录下的*.c文件和*.h文件,以及simple目录下的*.c和*.h拷贝到project/at_start_f405/examples/coremark/
CMakeLists.txt修改
主要就是把下面这行SOURCES定义中的模板从whetstone换成下面这行:
"project/at_start_f405/examples/gpio/led_toggle/src/*.c"
把whetsone的头文件那行换成:
project/at_start_f405/examples/coremark/inc)
core_portme.c修改
增加如下两行:
#define ITERATIONS 6000
extern volatile uint32_t gticks;
时间相关的改成下面这样:
#define NSECS_PER_SEC 1000
#define CORETIMETYPE clock_t
#define GETMYTIME(_t) (*_t = gticks)
core_portme.h加入:
#define COMPILER_FLAGS "-O3"
编译&烧录
cmake -B build
cmake --build build -j8
pyocd load -e sector -t at32f405rct7_7 build/at32f405.bin
运行截图
CPU是216MHZ, 所以算得2.625 coremark/MHZ
|