移植总体来说还是很简单的,我看官方的代码十分复杂,借鉴其他论坛的经验,移植十分简单了。
主要分为以下三步即可完成
- 准备一个可以正常使用printf的工程
- 将coremark代码文件加入工程
- 配置迭代时间,填写编译器相关信息
ST代码生成MDK
我们只需要把主频调到最高,把串口设置好(用来看log),
记得把堆栈调大一点,建议0x2000,如果空间不够再调小,将串口调通后进行下一步
源代码抽取
CoreMark 官网的连接地址:连接地址http://www.eembc.org/coremark/index.php
抽取后代码如下
我们将画红框的提取出来,建个文件夹存放比较好,官方也是这样建议的。
文件夹内文件
这些是咱们提取文件放在工程位置最后的h文件建议放在Inc这里,其他地方也没啥问题。
双击添加c文件,添加后如上图。
添加环境
到此文件已经添加完成。
移植
默认你调通printf情况下
STM32
把系统滴答服务函数加上去。
把main函数修改名字,并在h文件声明,因为之前提取的文件中已经有一个main函数,两个main函数会冲突。
提取文件中,主要修改的是 core_portme.c 和core_portme.h文件
文件中字符串与编译器修改一致就好了
c文件修改如上图,宏定义为迭代时间,就是运行测试的时间,时间需要大于10s才有效,看情况修改,EE_TICKS_PER_SEC 是频率,就是之前咱们使用的滴答1ms,1秒有1000毫秒,所以填1000。到此移植已经全部完成。
其它地方不需要进行修改!
sylixos
注意:这里的转换为值的,一般都是用下面图中的1为而不是上面的0 !!
使用
比如将函数注册到shell命令中为coremark命令,命令后面是运行时间。
[root]# coremark 10
跑分
其他跑分
我把手中的所以都跑了一次,看来跑分还是很能衡量一个芯片的能力的。
代码我已经上传到资源
上面都是虚拟机的2440,区别是一个是直接app,另一个是动态库调用时候。看来差距有点大。
M2S090TS-FGG484
powerpc 2020(Max@1.2GHz FPU)