本帖最后由 xld0932 于 2022-7-16 17:21 编辑
众所周知,在嵌入式系统行业用于评价CPU性能指标的标准主要有3种:CoreMark、Dhrystone和MIPS,其中CoreMark是一种新流行的嵌入式系统处理器测试基准,也是被认为是比Dhrystone和MIPS更具有实际价值的测试基准。我们今天将使用CoreMark这个方法基于CW32F030CxTx StartKit开发板来评估一下CW32F030系列MCU在MDK集成开发环境下使用不同编译优化等级时的运行效率。
CoreMark是用来衡量嵌⼊式系统中微控制器性能的标准。代码使用C语言编写、通过包含列举(查找和排序)、数学矩阵操作(普通矩阵运算)、状态机(确定输⼊流中是否包含有效数字),以及CRC(循环冗余校验)等算法的测试给出性能评价。而Dhrystone也是测量处理器运算能力的最常见基准程序之一,但Dhrystone并不包括浮点运算,所以常用于处理器的整型运算性能的测量,其输出结果为每秒钟运行Dhrystone的次数,即每秒钟迭代主循环的次数;程序也是用C语言实现的,因此C编译器的编译效率对测试结果也有很大影响。同时Dhrystone在后期的实践当中也不存在不少的缺陷,所以才有了后面CoreMark慢慢取代Dhrystone的趋势。
对于CoreMark的源码可以到官网上去下载,在Git上还有很多分享;对于基本的移植过程,各家MCU大体都一样,本文不再详细一步步描述,主要是还是看一下测试结果。
CoreMark测试 使用CW32F030系列MCU在工作频率为64MHz时,在KEIL MDK集成开发环境下,测试了几个不同编译选择的结果,如下表所示:
运行截图
跑分对于编译器的优化等级有严重依赖,我们用得最多的集成开发环境有KEIL MDK、IAR EWARM和GCC环境,这三种编译工具所编译出来的代码大小、执行效率都是不同的,当然执行结果也是不一样的;所以跑分只是基于解编译器对芯片性能的一个直观表现,这个结果可以让我们在基于某个芯片平台时选择使用哪种编译器可以达到最优性能提供了参考。
附件 参考链接:https://www.cnblogs.com/henjay724/p/8729364.html
|