【中科昊芯Start_DSC28027勇士开发板试用体验】CoreMark跑个分

描述

本文来源电子发烧友社区,作者:xiaopeng, 帖子地址:https://bbs.elecfans.com/jishu_2289640_1_1.html

提起MCU性能测试,最著名的就是CoreMark和Dhrystone。
CoreMark以每秒迭代次数作为性能评价,而Dhrystone的DMIPS与Dhrystone标准相关。
本文讨论CoreMark,先来看看MCU厂家如何宣传自家产品性能。


开发板试用



CoreMark是衡量嵌入式系统中微控制器性能的基准。通过包含列表处理(查找和排序)、矩阵处理(常见的矩阵操作)、状态机(确定输入流是否包含有效数字)和CRC(循环冗余校验)等算法的测试给出性能评价。

本文将演示如何将CoreMark移植到中科昊芯勇士DSP开发板上。
移植之前想要准备好一个基础工程,包括功能:①串口打印; ②定时器功能
因为在上一篇中已经把串口调通了,本次就基于上一篇的工程进行移植。

**CoreMark源码下载

CoreMark源代码是免费开源的,可以自己在其官网上进行自由下载:CoreMark官网


**将源代码添加到准备好的串口工程

开发板试用


**添加头文件路径
因为我们新建了CoreMark文件夹,所以需要将其加入的头文件包含路径中。
开发板试用


**添加硬件初始化代码

CoreMark源代码里面portable_init函数实在main函数里进行调用的,portable_init是用来做一些初始化工作的,所以我们可以把硬件相关的初始代码直接添加到这行函数的开始。

开发板试用


**修改计时相关的代码
start_time/ stop_time/ get_time这几个函数,是coremark程序运行时计算程序运行时间所用。这里使用cputimer0进行计时,cputimer0配置为1ms的中断间隔。cputimer0中断函数中更新Tick的值,每进一次中断加1。所以还需要修改cputimer0的中断处理函数。

修改后代码如下:
开发板试用


开发板试用


开发板试用


开发板试用


**设置迭代次数
开发板试用


**设置打印信息
开发板试用


**调整优化等级
貌似我调不调不影响结果

**printf重定向
CoreMark源代码里使用宏ee_printf进行数据打印,因此我对该宏进行了重新定义:
开发板试用


**将数组stack_memblock变成全局变量【重要】

CoreMark源代码中,数组tack_memblock是在main函数中进行定义的,大小是2k。但是由于勇士027芯片的stack定义的大小也是2k,所以不改成全局变量,会导致栈溢出,程序无法运行。

**编译下载运行
开发板试用



我大概与其它mcu做了一下对比,这个分数大概比Cortex-M3强点,比cortex-M4弱点,算是一款入门级的dsp芯片,当然这个跑分还与很多因素有关系,这里仅供参考。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分