[STM32H5]【NUCLEO- H563ZI 测评】-06-CoreMARK移植以及同性能国产厂家对比

本文讲述了作者如何在STM32H5和AT32F437单片机上移植CoreMark进行性能对比,涉及到解锁.s文件、堆栈调整、外设初始化、定时器设置和优化级别对得分的影响,最终优化后STM32H5达到442.12分,与AT32F437的482分相比有一定差距。
摘要由CSDN通过智能技术生成

今天小管家催我更新进度了,实在有点不好意思,所以今天来更新一下,因为小管家说的需要做其他厂家的性能对比的东西,所以这里就移植CoreMark来做一下对比,很久以前作了AT32的CoreMark移植,这里就再复述一次如何在STM32H5系列单片机上移植Coremark,这样能够更加方便的来对比两个厂家的性能,AT32de型号是AT32F437,主频是288M,STM32H563的时钟我也已经升到250M了,所以整体对比下来还是有一定的意义的,

首先我们还是找到STM32H563的.s文件,首先对文件进行解锁,然后将堆栈的大小修改0x1000大小,因为CoreMark有个要求就是堆栈大小不得低于1K,
整体修改好了如下图

我们在左边的项目管理栏里卖弄新增一栏,并且在文件夹下添加COREMARK的源码,源码在哪里下载,如何修改在我的其他文章中有说明,大家可以去搜索一下还是可以的。
然后就是需要修改我们在CoreMARK的函数。

首先就是修改MAIN函数的内容,需要包含进定时器,串口初始化这两个基本的外设的端口,然后还有就是需要串口完成串口的重定向工作,在我的上一篇文章中已经实现了重定向的测试,所以这里的话就不多说了,
然后就是需要修改一下CoreMark的一些关于定时器起始和停止函数的封装,具体的操作如下面的函数所示,还有一个就是需要设定定时器的中断为1ms计数一次,然后设置一个全局变量完成计数的增加的工作,方面CoremARK完成分数的计算。

这里的只做计数的增加,不做计数的清零工作,切记,否则会导致计数不准确的,从而导致分数计算有误。
完成了上述工作,就是还要增加定时器的初始化的还有串口的初始化的工作。

需要在portable_init函数中完成定时器,串口的初始化。
还有一点,就是我们原有的main函数需要全部注释掉

这样是因为CoreMark已经有一个Main函数了,好了完成上述步骤了,需要添加CoreMark文件夹的路径,还有头文件包含等步骤,这个比较简单就不多说饿了,然后我们就对整个项目进行编译。 
好了,接下来就是见证奇迹的时候了,我们就将程序下载到板子上,查看运行的结果。需要注意的是,我目前使用的是-O1的优化,先看看对比效果怎么样。

然后卡在不知道什么地方了……这个问题还需要查一下……我们把GPIO的电灯的功能加上,看看是否中途跑飞了。结果发现灯一直在闪烁,因为电灯是在终端内部的,所以相对来说不是那么严谨,然后……跑了三分钟之后除了结果
先来看看O1的结果

跑分才94.34分,想了一下,自己在中断内部点了个灯,说实话多少会有影响的,所以这里把电灯的代码去掉。再来跑一次。
然而,这次才93.6

然后我们吧优化等级提升到-O3然后在测试一下(上面两个都是-O1的结果)。


好吧,见证奇迹的时刻到了(下面这一个是-O3的结果)

看来优化等级还是起到了很好的作用!!!竟然达到了442.12的分数,相对原来的-O1的结果快了接近4倍我的妈呀……看来的确是Hall库导致延迟太大?(瞎猜的)
然后我们看看跑288M的AT32F437 的结果(这里直接给出结果哈-下面这个事AT32F437)

288M的M4的单片机跑了482,和STM32H563的M33内核的单片机跑了442分相差了差不多有40分,在频率高出38M的情况下,跑分只多了40分左右。然后我们来查一下STM32H563的官方跑分。

查了一下官方的跑分,竟然是1023分!!!!!!不知道这个分数怎么来的,我的编译器的版本是5.63

我们进一步来测试一下 -OFAST的测试结果,看看会到什么程度。

fast的结果是446.97 相当于447,比刚才多了6分

刚刚有查了一下,我这个没有开硬件浮点运算,我们把硬件浮点运算加上看看测试效果。


看来,这个跑分还是查了一点……好了,就到这里了,不知道什么原因导致跑分差一半,希望大家一起跑一下来看看。
今天的分享到这里了。
8-18 更新
查找网上的一些原因,要开Cache,并且需要做优化选项的配置



现在跑分是509分。509.388021
那么我们继续优化,按照网上的说法是需要这样设置并且开Icache


然后软件开CACHE,
果然,开恶劣CACHE的x效果要好得多。

1002.064252

和官方对比的1023 差了23分
现在可以了!!!!!!!
---------------------
作者:shenxiaolin
链接:https://bbs.21ic.com/icview-3321542-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值