请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L496 Coremark 1.0 不完全跑分报告

[复制链接]
wolfgang 提问时间:2018-4-19 21:47 /
本帖最后由 wolfgang2015 于 2018-4-20 09:58 编辑

拿到一款MCU评估板,第一件事就是要验证其MCU最大性能,能让诸位心中对MCU的处理能力有个了解,这次《低功耗MCU运行FreeRTOS》培训的STM32L49拿到后我也做了一次不完全Coremark跑分测试一、测试的方法
1、设定最大时钟
01.jpg


2、设定串口,修改功能引脚与PCB板上的一致,并设定串口时钟
06.jpg


05.jpg


05_1.jpg


设置对应波特率设置为115200(图略)


虽然之前就知道Coremark根据编译器不一样结果会不一样,但没有亲侧一边,心有不甘。
这里从筹备到得到最后测试结果,花费了较多的时间。
这里用CubeMX设置好后,依次生成了4种工程(EWARM、MDK-ARM、SW4STM32、TrueSTUDIO),然后用四种不同的开发环境对工程进行逐一编译,下载到Nucleo STM32L496 开发板上,检测不同编译器对Coremark跑分的影响。


二、不完全跑分结果:
1、EWARM 工程,用IAR 8.20编译后下载,得到跑分结果入下图:
08.jpg
跑分结果:CoreMark 1.0 : 264.970853 / IAR ANSI C -Ohs-no_size_constraints / STACK

2、MDK-ARM 工程,用KEIL 5.18编译后下载,得到跑分结果入下图:
09.jpg
跑分结果:CoreMark 1.0 : 209.561597 / MDK ANSI C -O3-Optimize for Time / STACK

3、SW4STM32 工程,用AC6 V2.0 编译后下载,得到跑分结果入下图:
10.jpg
跑分结果:210.222415 / GCC6.3.1 20170620 (release)[ARM/embedded-6-branch revision 249437] -O3 / STACK



4、TrueSTUDIO 工程,用TrueSTUDIO 9.0.0 编译后下载,得到跑分结果入下图:

11.jpg
跑分结果:209.608451/ GCC6.3.1 20170215 (release) [ARM/embedded-6-branch revision 245512] -Ofast /STACKrevision 249437] -Ofast / STACK


5、Coremark跑分对比表
12.jpg


三、跑分差异不完全分析

另外我看见论坛里有朋友跑出了165左右的Coremark值,最初我也在IAR编译的代码中跑出这样的分数,觉得背离官方给的参考值甚远,就觉得那里没对,多方对比之后发现这个问题源于CubeMX生成的代码,这里把问题指出来,望各位在自己的工程代码使用中多加注意,看似跑分结果,实际上代码的问题会让MCU性能大打折扣。望诸位多加注意!


问题跑分:
07.jpg


官方参考值:
02.jpg
官方给出的STM32L496的理论 Coremark跑分在273.55左右,可能是时钟是用较为稳定SHE缘故,同IAR的分之相差不到10分,算接近了。




问题跑分(分值:165)与官方跑分偏差交大的重要原因,经分析是CubeMX生成的SystemClock_Config()函数代码造成,函数代码中缺少以下代码的显示定义,跑分偏低的朋友,请检查诸位的代码中是否确实红色部分的定义:

........
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
  RCC_OscInitStruct.PLL.PLLM = 1;
  RCC_OscInitStruct.PLL.PLLN = 10;
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;

........


对应的系统时钟图的位置为:
13.jpg


这里使用的MCU是STM32L系列的单片机,片内具备SHI、MSI两种内部时钟,经测试在相同80MHz的主频下,二者跑分相差小于1,几乎相等,性能接近。至于为什么缺失丢PLLM设置就会让MCU跑慢,经查询用户手册《DM00083560_ENV4.pdf》,也没有能解答出来。
手册中默认是0x0,既是1分频,但初始化的时候并不是1分频,这部分PLLM设置时,需要代码作显示定义。 03.jpg
04.jpg


这里或许可能是HAL代码的一个BUG还是寄存器初始化的BUG,就不得而知了,望大家使用时多加注意。










收藏 1 评论6 发布时间:2018-4-19 21:47

举报

6个回答
Paderboy 回答时间:2018-4-20 09:26:54
赞赞赞。。。
wolfgang 回答时间:2018-4-20 09:58:11

能到您的点赞,很荣幸!
stary666 回答时间:2018-4-20 12:22:11
看看了,,,
寂寞,点燃一支烟 回答时间:2018-4-20 12:27:07
传个跑分附件 hex
wolfgang 回答时间:2018-4-20 15:23:21

参考官方的Coremark跑分,很简单的
andey 回答时间:2018-5-4 12:03:49
提示: 作者被禁止或删除 内容自动屏蔽
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版