> 文档中心 > 【GD32F427开发板试用】-05-GD32F427移植Coremark

【GD32F427开发板试用】-05-GD32F427移植Coremark


本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:申小林

如何在GD32F427开发板上移植CoreMARK?

1 下载CoreMARK源码

CoreMark开源的代码可以在Gitbub上自己做下载。
下载地址:https://github.com/eembc/coremark

2 拷贝需要的文件

需要的文件就只有框中的几个,把simple内的两个文件拷贝出来,然后新建一个文件夹,把所有的函数都放到文件夹内,然后把这个文件夹放在自己建立的GD32F427的工程路径下,新建分组,并添加文件夹目录。

3 修改以及配置

3.1 修改堆栈大小

CoreMARK对于堆栈的大小是有要求的,要求堆栈大小不低于1KB,我们需要在 .s文件内修改大小,如果不做修改,会进入hardfult中断。

【GD32F427开发板试用】-05-GD32F427移植Coremark

3.2 注释掉无用的配置

这里需要注释掉一些用不到的功能。因为时钟的设置和现在的配置没有关系。

【GD32F427开发板试用】-05-GD32F427移植Coremark

修改时钟的起始、停止、时间获取的三个函数。

【GD32F427开发板试用】-05-GD32F427移植Coremark

添加初始化函数。包括串口、定时器,这里需要说的一下是串口需要做重定向。不然会导致hardfult,前面说到的不设置堆栈,也会进hardfault。这里提一句,避免大家踩坑。

【GD32F427开发板试用】-05-GD32F427移植Coremark

修改迭代次数以及优化等级配置。

【GD32F427开发板试用】-05-GD32F427移植Coremark

最后还需要说一点,关于主函数,主函数在Coremark是有自带的主函数的,所以需要注释掉自己的主函数,避免冲突。
编译一下,跑个分:结果如下图

【GD32F427开发板试用】-05-GD32F427移植Coremark

再来看看官方的图:跑分是673.20 自己的跑分是:682.322

官方的评分连接请参考这里:
https://www.eembc.org/coremark/scores.php

【GD32F427开发板试用】-05-GD32F427移植Coremark

附件附上本次的全部源码,欢迎大家下载体验。

PS.Coremark不一致主要是官方用的编译器是IAR,本文用的是Keil。

清水丽人化妆品