本帖最后由 DavidZH 于 2016-12-18 17:13 编辑
CoreMark是衡量MCU一个性能的指标,具有一定的参考作用; ST官方和CoreMark 官方都给出了针对STM32F7 的分数,下面将在IAR和MDK平台进行对比测试;
一、软件和源码准备:
1、STM32CUBEMX;
2、CoreMarK源码;
http://www.eembc.org/coremark/download.php
二、ST CUBEMX 生产工程配置:
CUBEMX 配置的方式一样,具体如下:
1、选择使用外部晶振,并选择使用串口1(用于打印相关信息);
2、主频选择216MHZ;
3、配置串口参数:
4、开启CPU Cache;
5、设置堆栈大小;(要设置大,否则无法运行)
以上就配置好了CUBEMX的参数,具体要生成所需的工程文件;
三、MDK平台CoreMark 测试:
为了保持工程的统一,生产的main.c重新命名为其他C文件,供CoreMark中的core_main.c调用,这样的好处在于,方便其他平台移植;
MDK平台优化设置:(必须开优化,否则分数很低)
分数测评:只有879左右
三、IAR平台CoreMark 平台测试:
1、IAR生成的工程方式与MDK一样,只是CUBEMX生成工程不同而已;
2、IAR 优化配置:
3、分数测试:1092的分数,比官方提供分数还高几分;
在移植过程中,需要注意的问题:
1、堆栈要开大,如果在设置工程时候忘了设置,可以直接在文件中设置:
MDK在startup_stm32f769xx.s中设置:
IAR在工程中设置:
2、迭代时间需要在10s以上;ITERATIONS的值需要在大于10000;
#define ITERATIONS 15000
以上对比测试可知:
1、IAR对优化要好于MDK,因此CoreMark 接近官方分数;
2、同属于一个内核(Cortex M7))的STM32F746 Discovery 分数基本和STM32F769 Discovery 一样;
资源如下:
完整工程:
STM32F769DiscoveryIAR - CoreMark.zip
(3.75 MB, 下载次数: 56)
STM32F769Discovery - CoreMark - MDK.zip
(3.67 MB, 下载次数: 82)
coremark_v1.0.zip
(699.77 KB, 下载次数: 39)
如何将coremark程序移植到STM32上.pdf
(1.12 MB, 下载次数: 64)
点击此处,查看STM32F769I开发板官方资源。