首先,来个美女镇楼吧,最近在健身中!!!


很荣幸收到了瑞萨电子发放的CPKCOR-RA8D1B开发板, RA8D1是瑞萨的Arm® Cortex®-M85 core旗舰版M85处理器,是专门用来跑AI算法的MCU,加上480MHZ的主频,性能应该非常的强劲,所以本期就使用coremark来对RA8D1进行跑分测试。看看能跑多少分!!!
1。首先从官网下载coremark源代码

https://github.com/eembc/coremark
大家自行下载
2。新建工程,使用瑞萨的ra smart配置软件建立串口工程,这里就不赘述了,直接看我上一篇测评文章,里面有详细说明
3。修改coremark源文件

如上图所示,只需要上面的文件

#ifndef COMPILER_VERSION
#ifdef GNUC
#define COMPILER_VERSION "GCC"VERSION
#else
#define COMPILER_VERSION "Please put compiler version here (e.g. gcc 4.1)"
#endif
#endif
#ifndef COMPILER_FLAGS
#define COMPILER_FLAGS "-Omax"// ���ֵ����ʵ�ʵı����Ż�ѡ�������д
#endif
#ifndef MEM_LOCATION
#define MEM_LOCATION "STACK"
#endif
#define ITERATIONS 10000 // ���ֵ��Ҫ��֤�ܹ���������10�룬������дһ��ֵ�����в���10��ᱨ����ٻ�����
#define MAIN_HAS_NOARGC 1 // coremark main��ʹ�÷���ֵ

使能最高优化等级,跑分最高

同时KEIL里面也要使能-Omax等级

修改上面的宏定义
4。主要核心代码如下:
#include "hal_data.h"
#include "Systick.h"
#include "usart9.h"
#include "usart_ring.h"
#include "bsp_debug_uart.h"
#include "bsp_canfd1.h"
#include "coremark.h"
FSP_CPP_HEADER
void R_BSP_WarmStart(bsp_warm_start_event_t event);
FSP_CPP_FOOTER
extern MAIN_RETURN_TYPE coremark_main(void);
/*******************************************************************************************************************//**
-
main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used. This function
-
is called by main() when no RTOS is used.
*********************************************************************************************************************/
void hal_entry(void)
{
/ TODO: add your own code here */
hal_systick_init();
Debug_UART9_Init();
UART9_Init();
CANFD1_Init();
printf("RA8D1测试版coremark跑分\r\n");
coremark_main();
while (1)
{
HAL_Delay(200);
}
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
/*******************************************************************************************************************//**
-
This function is called at various points during the startup process. This implementation uses the event that is
-
called right before main() to set up the pins.
-
@param[in] event Where at in the start up process the code is currently at
**********************************************************************************************************************/
void R_BSP_WarmStart (bsp_warm_start_event_t event)
{
if (BSP_WARM_START_RESET == event)
{
#if BSP_FEATURE_FLASH_LP_VERSION != 0
R_FACI_LP->DFLCTL = 1U;
#endif
}
if (BSP_WARM_START_POST_C == event)
{
R_IOPORT_Open(&g_ioport_ctrl, &IOPORT_CFG_NAME);
}
}
#if BSP_TZ_SECURE_BUILD
FSP_CPP_HEADER
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable ();
/* Trustzone Secure Projects require at least one nonsecure callable function in order to build (Remove this if it is not required to build). */
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable ()
{
}
FSP_CPP_FOOTER
#endif

编译工程,烧录代码到板子

打开串口助手

RA8D1测试版coremark跑分
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 30000
Total time (secs): 30.000000
Iterations/Sec : 333.333333
Iterations : 10000
Compiler version : GCCClang 19.0.0git
Compiler flags : -Omax
Memory location : STACK
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0x988c
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 333.333333 / GCCClang 19.0.0git -Omax / STACK
可以看到,最终分数为333分。
RA8D1的性能非常的强悍!!!!!!!
详情见视频