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

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.lryc.cn/news/2400675.html

相关文章:

  • 中国区域30m/15天植被覆盖度数据集(2010-2022)
  • LabVIEW准分子激光器智能控制系统
  • 微服务面试资料1
  • Pytest Fixture 详解
  • 力扣HOT100之二分查找:74. 搜索二维矩阵
  • 【前端】前后端通信
  • 编程技能:格式化打印04,sprintf
  • C语言基础(11)【函数1】
  • R语言基础| 下载、安装
  • 【hive sql】窗口函数
  • Ubuntu24.04 交叉编译 aarch64 ffmpeg
  • 《AI角色扮演反诈技术解析:原理、架构与核心挑战》
  • 微软的新系统Windows12未来有哪些新特性
  • 树莓派超全系列教程文档--(54)如何使用rsync在计算机之间同步文件夹
  • 华为ICT和AI智能应用
  • ROS2与Unitree机器人集成指南
  • 在虚拟宇宙中低语——进程间通信,Linux命名管道的前世今生
  • Cursor 工具项目构建指南:Java 21 环境下的 Spring Boot Prompt Rules 约束
  • 各个布局的区别以及示例
  • 什么是MVC?
  • STM32的ADC简介
  • Bash shell四则运算
  • (javaSE)Java数组进阶:数组初始化 数组访问 数组中的jvm 空指针异常
  • 力扣刷题Day 70:在排序数组中查找元素的第一个和最后一个位置(34)
  • vue 多端适配之pxtorem
  • 图片压缩工具 | 图片属性详解及读取解析元数据
  • React---day8
  • C# Onnx 动漫人物人脸检测
  • C++内存列传之RAII宇宙:智能指针
  • PVE 虚拟机安装 Ubuntu Server V24 系统 —— 一步一步安装配置基于 Ubuntu Server 的 NodeJS 服务器详细实录1