当前位置: 首页 > news >正文

CMS32M65xx/67xx系列CoreMark跑分测试

CMS32M65xx/67xx系列CoreMark跑分测试

1、参考资料准备

1.1、STM32官方跑分链接

在这里插入图片描述
在这里插入图片描述
1.2、官网链接

  • 官方移植文档,如下所示,点击红框处-移植文档: A new whitepaper and video explain how to port CoreMark-Pro to bare-metal

在这里插入图片描述
在这里插入图片描述
1.3、测试软件git下载链接

2、代码移植

在工程中新建CoreMark文件夹,将Git下载的coremark-main文件解压,从coremark-main文件夹中拷贝文件
core_list_join.c
core_main.c
core_matrix.c
core_state.c
core_util.c
coremark.h
simple/core_portme.c(simple文件夹下)
simple/core_portme.h(simple文件夹下)

将上述文件拷贝到新建的文件夹中。
在这里插入图片描述
主要注意配置时间基数、官方以及参考都是使用系统时钟(SysTick),当然也可以使用定时器来做时基
在core_portme.c文件夹中,做以下修改#define EE_TICKS_PER_SEC (1000) 该定义与定时器时基有关。定时器设定1ms周期,配置为1000。

//#define NSECS_PER_SEC              CLOCKS_PER_SEC
//#define CORETIMETYPE               clock_t
//#define GETMYTIME(_t)              (*_t = clock())
//#define MYTIMEDIFF(fin, ini)       ((fin) - (ini))
//#define TIMER_RES_DIVIDER          1
//#define SAMPLE_TIME_IMPLEMENTATION 1
//#define EE_TICKS_PER_SEC           (NSECS_PER_SEC / TIMER_RES_DIVIDER)#include "CMS32M6510.h"
#define CORETIMETYPE               uint32_t
#define EE_TICKS_PER_SEC           (1000)   //和定时器配置相关
void
start_time(void)
{
//    GETMYTIME(&start_time_val);Time0_cnt=0;TMR_Start(TMR0);
}void
stop_time(void)
{
//    GETMYTIME(&stop_time_val);TMR_Stop(TMR0);
}CORE_TICKS
get_time(void)
{
//    CORE_TICKS elapsed
//        = (CORE_TICKS)(MYTIMEDIFF(stop_time_val, start_time_val));
//    return elapsed;CORE_TICKS elapsed	= Time0_cnt;return elapsed;
}

在core_portme.h文件夹中,做以下修改##define MAIN_HAS_NOARGC 1该定义与coremark_main函数入口参数有关。#define ITERATIONS 1000该定义根据MCU来修改,保证计算时间否则会出现Errors detected的情况。

#ifndef MAIN_HAS_NOARGC
#define MAIN_HAS_NOARGC 1
#endif#define ITERATIONS 1000

3、跑分结果

3.1、65xx跑分结果

在这里插入图片描述

3.2、67xx跑分结果

在这里插入图片描述

65xx-CoreMark跑分工程代码
67xx-CoreMark跑分工程代码

4、参考文档

参考文章1:51CTO-看看你的MCU能跑多少分?极简教程教会你测试MCU性能!
参考文章2:CSDN-CoreMark移植过程记录

http://www.lqws.cn/news/104779.html

相关文章:

  • dvwa6——Insecure CAPTCHA
  • 【机器学习及深度学习】机器学习模型的误差:偏差、方差及噪声
  • 机器学习:集成学习概念、分类、随机森林
  • [P2P]并发模式
  • 亚远景科技助力东风日产通过ASPICE CL2评估
  • Unity——QFramework框架 内置工具
  • 利用lightgbm预测adult数据集
  • 国产高性能pSRAM选型指南:CSS6404LS-LI 64Mb QSPI伪静态存储器
  • 【氮化镓】钝化层对p-GaN HEMT阈值电压的影响
  • 《深入解析SPI协议及其FPGA高效实现》-- 第三篇:FPGA实现关键技术与优化
  • 436人!2025年博新计划入选名单公示
  • VS下C++及C#项目打包发布方法
  • 超临界二氧化碳再热再压缩布雷顿循环建模与先进控制
  • websocket协议
  • 06 APP 自动化- H5 元素定位
  • 网络编程(计算机网络基础)
  • @Resource和@Autowire
  • Go语言学习-->编译器安装
  • python学习打卡day43
  • 前端​​HTML contenteditable 属性使用指南
  • windows安装多个版本composer
  • 燃尽图和甘特图
  • “刹车思维”:慢,是为了更快
  • 超声波粒度仪市场报告:行业现状、竞争格局与未来趋势分析
  • 【基础】Unity中Camera组件知识点
  • 49套夏日小清新计划总结日系卡通ppt模板
  • 《Effective Python》第六章 推导式和生成器——使用类替代生成器的 `throw` 方法管理迭代状态转换
  • 香橙派3B学习笔记6:基本的Bash脚本学习_UTF-8格式问题
  • 使用 Python + ExecJS 获取网易云音乐歌曲歌词
  • 红黑树与红黑树的插入——用C++实现