单片机性能测试基准CoreMark是什么?

cathy的头像
cathy 发布于:周二, 08/10/2021 - 10:54 ,关键词:

很多人说单片机性能太弱,那你了解这个性能是如何得出来的吗?

概述

我们经常听见某手机发布会,安兔兔跑分多少多少,其实这个跑分就是体现手机性能的一个指标。

我们使用STM32开发产品,选择MCU时,一般会综合考虑MCU各方面性能。

对于MCU来说,一个重要指标是功耗,还有一个重要指标就是性能。

当我们进入ST官方微控制器网页,就会发现ST将MCU划分为不同层次,如下图:

https://www.st.com/en/microcontrollers.html

“单片机性能测试基准CoreMark是什么?"

从上面层次关系,大致可以了解ST 各MCU的功耗和性能。

STM32 CoreMark跑分

STM32家族的32位微控制器基于ARM Cortex®-M处理器设计,为用户提供新的自由度。

产品集高性能、实时性、数字信号处理、低功耗、低压运行、互联性于一体,保持充分的集成化和易用性。

根据性能划分,STM32各系列MCU划分为如下图几大类产品。具体可以参看官网信息。

https://www.st.com/en/microcontrollers/stm32-32-bit-arm-cortex-mcus.html

“单片机性能测试基准CoreMark是什么?"

在嵌入式处理器领域最为知名和常见测试CPU性能的就是:Dhrystone 和 CoreMark。

1、CoreMark是用来衡量嵌入式系统中中心处理单元(CPU,或叫做微控制器MCU)性能的标准。

2、DMIPS:Dhrystone Million Instructions executed Per Second。用来计算同一秒内系统的处理能力,它的单位以百万来计算,也就是(MIPS)。主要用于测整数计算能力。

CoreMark跑分如何得来?

CoreMark是用来衡量CPU性能的标准。该标准于2009年由EEMBC组织的Shay Gla-On提出,并且试图将其发展成为工业标准,从而代替陈旧的Dhrystone标准。

与Dhrystone一样,CoreMark小巧,便携,易于理解,免费,并且显示单个数字基准分数。与Dhrystone不同,CoreMark具有特定的运行和报告规则,旨在避免Dhrystone的问题。

CoreMark跑分是通过运行C语言代码得出来的分数。主要包含如下的运算法则:列举(寻找并排序),数学矩阵操作(普通矩阵运算)和状态机(用来确定输入流中是否包含有效数字),最后还包括CRC(循环冗余校验)。

也就是说CoreMark是使用一套用C语言编辑的测试代码,我们通过运行这套代码就能测试你MCU的性能。

CoreMark测试代码

这里我们可以参考CoreMark官网信息,地址:
https://www.eembc.org/coremark/index.php

“单片机性能测试基准CoreMark是什么?"

这里包含CoreMark相关说明、源代码下载、移植说明等。源代码位于Github,地址:

https://github.com/eembc/coremark

“单片机性能测试基准CoreMark是什么?"

源码docs目录下包含与源码相关的很多说明,感兴趣可以下载来测试一下你MCU跑分多少。

其实,这里也有多种型号STM32的CoreMark跑分和测试结果:

“单片机性能测试基准CoreMark是什么?"

“单片机性能测试基准CoreMark是什么?"

STM32有些板子出厂就自带CoreMark测试程序,比如我这边手上有一个块STM32F429I-Discovery的板子,就自带性能测试代码。

“单片机性能测试基准CoreMark是什么?"

移植的过程,我这里就不教大家了,官方提供一些例程,网上也有很多教程,感兴趣的小伙伴可以试着移植测试一下。

来源: strongerHuang
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 498