[其他ST产品] 【NUCLEO试用】NUCLEO-L552ZE-Q CoreMark测试

[复制链接]
3181|33
 楼主| goodbaiy 发表于 2020-3-22 23:01 | 显示全部楼层 |阅读模式
本帖最后由 goodbaiy 于 2020-3-22 23:04 编辑

本次我用NUCLEO-L552ZE-Q开发板跑一下CoreMark,看看MCU性能。
上一帖我有说过我使用的keil5.23版本,这个没有达到CubeMX要求的最小版本,所以存在一些问题,由于有办法编译和下载程序,我也就没有升级。
参考网上一些帖子的内容(都是用的IAR),我进行了CoreMark的在keil的移植。
新建CubeMx工程,配置时钟及串口资源,上一帖有写到,这里不再赘述。由于开发板的外部高速晶振没有焊接,时钟只能用内部高速振荡器倍频获得110MHz时钟。
时钟.png
整个移植过程就是从官网下载最新的CoreMark测试源码(我把用到的文件存入了coremark_source文件夹),将源码加入到工程中。
工程添加.png
添加路径:
添加路径.png
调整优化级别:cube生成的工程默认是-O3级别;针对L5还增加了-Ofast级别(V5.23下测试两个差不多)
选项.png
然后调整代码:
注释掉main.c开头的函数声明,把main()函数全部注释掉,函数声明的原函数前缀static删除,把刚刚注释掉的函数声明移到mian.h中(用extern取代static修饰),这样可以在core_portme.c中通过头文件包含调用这些函数。同时由于外部需要用到串口,所以把串口的句柄声明也一起放到main.h中。
文件修改1.png 文件修改2.png
小技巧:用户增加的部分,放到cube生成文件的xxx begin xxxxx end xx对中,这样在cube重新生成的时候不会把我们自己增加的部分删除(cube偶尔有问题,会删除掉)
以上的修改,每次cube重新生成工程时都需要手动处理(部分内容找不到合适的注释对,所以每次生成都会被修改掉)。
Core_portme.c中加入头文件包含信息。
文件包含.png
其他修改参见文档《如何将coremark程序移植到STM32上》,写的很详细(我把文件上传到了附件)。
工程移植、修改完成后,编译、下载测试。
第一次测试:由于L5没有打开icache,测试结果只有115分,如下:
1次评分.png
这个分数异常的低;考虑时没有打开icache,所以重新配置工程,打开icache。重新调整代码,增加icache的部分,重复测试分数提高到了275分:
icache.png 2次评分.png
这个分数比上一次没开icache的高了好多,可见icache对于coremark有质的提升。但是看一下官方文档427,这个差了接近一倍呢?我当时就抓狂了,难道哪里没弄好?仔细检查,反复测试了几遍都是一样的结果,后来想会不会是IDE有问题呢,毕竟网上测试coremark的帖子都是用IAR的居多数,更何况我keil还是低于要求版本的5.23。那就找一个和谐版,测试一下吧。
我用的IAR 8.40符合cube的要求,安装后又简单学习了一下用法,开始测试IAR版本的coremark
可是我的IAR也有问题,没有L5系列芯片。这就有点无奈了,还好有个M33内核的选项,索性这么用吧。
无L5.png M33.png
编译通过,下载到开发板,速度飞快,评分高,但是最后有错误(时间小于10秒,需要增加迭代次数),修改、编译、下载,等待十几秒,终于看到了好结果。跑到了427分,与官方得分一致。
iar评分.png
至此,coremark测试ok
可是我还不甘心,总觉得keiliar不能差这么多,所以下载了最新的KEIL MDK V5.29,这下更悲剧,编译、直接下载都没有问题,可是程序运行一段时间就挂了,根本看不到结果(keiliar使用用的相同的源文件,iar都可用、keil就是不行)。我把源文件也上传,有板子的小伙伴可以自己试一下,看看究竟是什么问题。
如何将coremark程序移植到STM32上.pdf (1.12 MB, 下载次数: 10)

cm_2_iar_mdk.rar (791.92 KB, 下载次数: 7)


评论

我用keil编译,下载,串口没有任何数据显示  发表于 2020-5-5 21:50
可以  发表于 2020-4-9 14:31
21ic小喇叭 发表于 2020-3-23 14:23 | 显示全部楼层
感谢您的认真分享,奖励您1000家园币,这是论坛新上线的功能,可以兑换礼品或者抽奖

欢迎您体验看看~~~
zhangmangui 发表于 2020-3-23 21:54 | 显示全部楼层
21ic小喇叭 发表于 2020-3-23 14:23
感谢您的认真分享,奖励您1000家园币,这是论坛新上线的功能,可以兑换礼品或者抽奖

欢迎您体验看看~~~ ...

这个奖励很客观  赞
分享内容不错
磨砂 发表于 2020-4-7 13:48 | 显示全部楼层
非常感谢楼主分享
晓伍 发表于 2020-4-7 13:48 | 显示全部楼层
非常感谢楼主分享
八层楼 发表于 2020-4-7 13:48 | 显示全部楼层
非常感谢楼主分享
观海 发表于 2020-4-7 13:49 | 显示全部楼层
非常感谢楼主分享
guanjiaer 发表于 2020-4-7 13:49 | 显示全部楼层
非常感谢楼主分享
quickman 发表于 2020-4-9 20:26 | 显示全部楼层
         
jstgotodo 发表于 2020-4-9 20:26 | 显示全部楼层
这个的功耗怎么样呢     
iamaiqiyi 发表于 2020-4-9 20:27 | 显示全部楼层
如何编译coremark里的测试用例  
dzfansman 发表于 2020-4-9 20:27 | 显示全部楼层
如何将CoreMark程序移植到STM32  
sanxingnote7 发表于 2020-4-9 20:27 | 显示全部楼层
谢谢楼主分享的。
backlugin 发表于 2020-4-9 20:27 | 显示全部楼层
stm32f7的uart的缓存是多少  
sdCAD 发表于 2020-4-9 20:28 | 显示全部楼层
使用NUCLEO-F401RE
fengm 发表于 2020-4-9 20:28 | 显示全部楼层
在哪里申请的      
pl202 发表于 2020-4-9 20:28 | 显示全部楼层
CoreMark测试不错呢。
typeof 发表于 2020-4-9 20:29 | 显示全部楼层
            
dzfansman 发表于 2020-4-9 20:29 | 显示全部楼层
如何将CoreMark程序移植到STM32  
sanxingnote7 发表于 2020-4-9 20:29 | 显示全部楼层
学习一下了。      
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

75

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部