打印
[G32A]

【极海G32A1465测评】——(1)移植coremark测试G32A1465 CPU性能分数 上篇

[复制链接]
467|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangyurong|  楼主 | 2024-12-16 21:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yangyurong 于 2024-12-17 13:26 编辑

      很荣幸收到极海电子发放的G32A1465开发板,先看看板子资源,首先G32A1465是一款基于 Arm® Cortex®-M4F 内核的 32 位微控制器,带有FPU的 32位Arm® Cortex®-M4F 内核,具备硬件浮点运算单元,最高 112MHz 工作频率,适合用于高速无刷直流电机FOC控制算法领域。而且这是一款车规级的MCU,安全可靠性也是比一般的消费电子MCU高很多。所以本次测试coremark主要就是以80MHZ和112MHZ来对G32A1465进行CPU性能跑分测试。
一、CoreMark简介
什么是CoreMark?
CoreMark是一个简单而又精密的基准测试程序,是专门为测试处理器核功能而设计的。运行CoreMark会产生一个“单个数字”的分数,(从而)允许用户在(不同)CPU之间进行快速比较。简单来说,就是一个测试CPU性能的程序,类似PC上的Cinebench、CPU-Z之类的CPU性能测试工具。和电脑上的鲁大师测试CPU分数类似。
接下来我们尝试在G32A1465开发板上跑一下CoreMark,看看分数是多少。

二、CoreMark移植
CoreMark是一个基准测试功能程序,在MCU上运行需要[color=rgba(0, 0, 0, 0.75)]打印输出 和定时器计时两部分。
[color=rgba(0, 0, 0, 0.75)]coremark移植有两种方式。
[color=rgba(0, 0, 0, 0.75)]一种是通过coremark官网的github连接进行下载源码导入KEIL工程集成编译,coremark

[color=rgba(0, 0, 0, 0.75)]另一种是通过KEIL里面的安装包RTE环境进行使能安装即可,方便简单,无需加载源文件到工程。
[color=rgba(0, 0, 0, 0.75)]本测评主要采用第二种方式来移植coremark。
[color=rgba(0, 0, 0, 0.75)]为了使用coremark组件,我们需要先安装 [color=rgba(0, 0, 0, 0.75)]GorgonMeducer.perf_counter.2.4.0.pack
GorgonMeducer.perf_counter.2.4.0.zip (753.2 KB)
上面这个文件,解压缩后如下图

双击安装上面的文件即可,打开KEIL软件,点击这个

弹出下图,选中cmsis的core


然后往下拉,选中Utlities 中的core和benchmark。

点击OK就可以。
KEIL工程中就会出现下面选中组件了

因为我用的是极海提供测demo  程序,里面已经集成好了串口printf打印函数,所以直接使用即可。
定时器使用systick即可。接下来我们移植使用coremark,需要修改core_portme.c文件夹里的头文件和宏,先添加头文件
#include <stdio.h>
#include <stdlib.h>
#include "coremark.h"
#include "perf_counter.h"

core_portme.h头文件中需要增加修改下面三个宏
#define ITERATIONS 3500   
#endif
#ifndef COMPILER_FLAGS
#define COMPILER_FLAGS  "-O0"
//#define COMPILER_FLAGS  "-O1"
//#define COMPILER_FLAGS  "-O2"
//#define COMPILER_FLAGS  "-O3"
//#define COMPILER_FLAGS  "-Ofast"
//#define COMPILER_FLAGS  "-Os balanced"
//#define COMPILER_FLAGS  "-Oz image size"
//#define COMPILER_FLAGS  "-Omax"
#endif
#define MAIN_HAS_NOARGC 1  

其中COMPILER_FLAGS 对应的是KEIL的优化等级



所以我们要一项一项的测coremark分数,每一项对应80MHZ和112MHZ两个分数。
打开main.c文件,添加一下头文件

#include "user_config.h"
#include "board.h"
#include <stdio.h>
#include <stdbool.h>
#include "perf_counter.h"
#include "coremark.h"

在主程序里面改写相关函数

          SystemCoreClockUpdate( );
          SystemCoreClock = 80000000 ;
    init_cycle_counter(false);
          printf("时钟频率为80MHZ时\r\n");
          coremark_main( );

          printf("--------------------------------\r\n");
          SystemCoreClock = 112000000 ;
    init_cycle_counter(true);
          printf("时钟频率为112MHZ时\r\n");
          coremark_main( );

         
    while(1)
    {

    }







RTC_Alarm.zip

1.04 MB

使用特权

评论回复
沙发
pssyx| | 2024-12-17 09:29 | 只看该作者
请问分数各是多少?

使用特权

评论回复
评论
yangyurong 2024-12-17 11:50 回复TA
昨晚睡觉了,现在马上更新分数,给我个赞 
板凳
yangyurong|  楼主 | 2024-12-17 12:30 | 只看该作者
测试结果看我附件中的图片吧,这帖子有字数限制,我在开个帖子

使用特权

评论回复
地板
yangyurong|  楼主 | 2024-12-17 13:17 | 只看该作者
本帖最后由 yangyurong 于 2024-12-17 13:26 编辑

整个coremark测评我只能分为上中下3篇来发帖, 这论坛太不友好了,字数限制太少了,无法一篇帖子发完。希望管理员快速通过我的上中下

使用特权

评论回复
5
丙丁先生| | 2024-12-18 08:09 | 只看该作者
跑分

使用特权

评论回复
6
问天少年| | 2024-12-18 13:35 | 只看该作者
yangyurong 发表于 2024-12-17 13:17
整个coremark测评我只能分为上中下3篇来发帖, 这论坛太不友好了,字数限制太少了,无法一篇帖子发完。希望 ...

应该是图片占用的太大了,可以用上传的方式

使用特权

评论回复
7
xionghaoyun| | 2024-12-18 17:20 | 只看该作者
学习

使用特权

评论回复
8
zhjb1| | 2024-12-19 06:45 | 只看该作者
看您写的不错,我也试试,谢谢

使用特权

评论回复
9
zhjb1| | 2024-12-19 07:56 | 只看该作者
您好,按照您的方式,添加工程项目,代码都无问题,编译报100多错误,可看出是路径问题,我的疑问:
1. 跑分程序包安装在那里?——默认在本机的系统盘用户文件夹;——选择安装在keilvxxx版本的目录中?
2. 已经安装到C盘的user\administrator文件夹下了,再次安装无法改变目录,如何操作呢?
请指点,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

15

帖子

0

粉丝