本文来源电子发烧友社区,作者: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芯片,当然这个跑分还与很多因素有关系,这里仅供参考。
提起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芯片,当然这个跑分还与很多因素有关系,这里仅供参考。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
中科昊芯
+关注
关注
5文章
84浏览量
5891 -
开发板试用
+关注
关注
3文章
303浏览量
2643
发布评论请先 登录
相关推荐
热点推荐
【获奖名单】2025开发板评测大赛优秀开发者、最受欢迎开发板公布
各位发烧友们,大家好!2025开发板试用评测大赛已圆满落幕。经过厂商与发烧友平台的共同评选,优秀作品及人选名单现已评选完成,共选出24位优秀作品开发者,被评选上的用户将获得荣誉证书。各工程师参与完
发表于 11-21 09:31
【作品合集】视美泰M-K1HSE、3568开发板测评
Pi BPI-RV2开发板测评作品合集
第十四期合集 : 玄铁BPI-CanMV-K230D-Zero开发板测评作品合集
第十五期合集 : 中科昊
发表于 09-22 10:32
【作品精选】2025电子发烧友开发板测评大赛作品合集!
Milk-V Duo S 开发板免费试用
玄铁Banana Pi BPI-RV2开发板试用
玄铁Banana Pi BPI-CanMV-K230D-Zero17
发表于 09-03 15:24
【中科昊芯Core_DSC280025C开发板试用体验】+4. CAN外设调试(含源码)
前言
大家好,非常感谢电子发烧友与中科昊芯提供的DSC280025C开发板,这是一款DSP的开发板
发表于 08-05 20:46
【GM-3568JHF开发板免费体验】GM-3568JHF的coremark跑分5007分
coremark进入目录
输入make编译
二、跑分
输入./coremark.exe
可以看到最终 视美泰GM-3568JHF 最后跑
发表于 07-22 17:32
【中科昊芯Core_DSC280025C开发板试用体验】+3.DSP基础外设调试(含源码)
前言
大家好,非常感谢电子发烧友与中科昊芯提供的DSC280025C开发板,这是一款DSP的开发板
发表于 07-13 16:07
【中科昊芯Core_DSC280025C开发板试用体验】+2.RAM工程与FLASH工程对比
前言
大家好,非常感谢电子发烧友与中科昊芯提供的DSC280025C开发板,这是一款DSP的开发板
发表于 07-04 10:37
【中科昊芯Core_DSC280025C开发板试用体验】+1.开箱之浮点计算对比
【中科昊芯Core_DSC280025C开发板试用体验】+1.开箱之浮点计算对比
前言
大家好,
发表于 06-29 10:01
【RA4L1-SENSOR】+ RA4L1-SENSOR开发版之CoreMark跑分测试
;瑞萨RA4L1 开发板 coremark跑分测试:\\\\r\\\\n\\\\r\\\\n\");
coremark_main();
发表于 06-09 11:05
中科昊芯DSP产品及公司信息
库和驱动库,帮助用户降低迁移成本,缩短开发周期。同时,公司还推出了多种开发板和核心板,如Core_DSC28027和Start_DSC280
发表于 04-07 09:16

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