[技术相关] 【SWDM-QFP100-34SVEA3测评】+CoreMark移植跑分

[复制链接]
 楼主| freeelectron 发表于 2023-5-24 10:27 | 显示全部楼层 |阅读模式
<
本帖最后由 freeelectron 于 2023-5-24 10:29 编辑

#申请原创#

CoreMark是一项测试处理器性能的基准测试。代码使用C语言写成,包含:列举,数学矩阵操作和状态及CRC等运算法则;
目前CoreMark已迅速成为测量与比较处理器性能的业界标准基准测试。CoreMark的得分越高,意味着性能更高;
CoreMark官网的连接地址:http://www.eembc.org/coremark;

本文将一步步来介绍如何将下载的CoreMark测试代码移植到SWDM-QFP100-34SVEA3开发板上进行测试。

源码地址 https://github.com/eembc/coremark

1、源码结构
c-1.png
主要分为两部分,源码和接口代码,其中接口代码针对不同的平台,有不同的文件夹,针对单片机,我们使用simple文件夹中的即可。

2、将代码添加进工程
c-2.png

3、编译报错处理
c-3.png

FLAGS STR:优化等级,需要替换,这里要与编译器的优化等级一致,本次移植设置为:
  1. #define COMPILER_FLAGS "-o3" ;

ITERATIONS:算法运行的次数,这个值的设置必须确保,运行的时间大于10s,否则,会报错,本次移植设置为:
  1. #define ITERATIONS        4000

4、main函数重复定义
c-4.png
在core_main.c文件中的main函数与原来工程中的重复,修改为core_main:
c-5.png

5、启动时间、停止时间、获取当前时间函数接口
使用定时器4实现了一个1ms中断一次的计数器
start_time(void):启动时间
  1. void
  2. start_time(void)
  3. {
  4. //    GETMYTIME(&start_time_val);
  5.         start_time_val=(CORETIMETYPE)GetSystemTick();
  6. }
stop_time:结束时间
  1. void
  2. stop_time(void)
  3. {
  4. //    GETMYTIME(&stop_time_val);
  5.       
  6.         stop_time_val=(CORETIMETYPE)GetSystemTick();
  7. }
get_time:运行时间,停止时间计数减去启动时间,两个的差就是运行时间
  1. CORE_TICKS
  2. get_time(void)
  3. {
  4.     CORE_TICKS elapsed
  5.         = (CORE_TICKS)(MYTIMEDIFF(stop_time_val, start_time_val));
  6.     return elapsed;
  7. }

6、时间颗粒度定义
由于我们是1ms中断一次,即就是1ms计数一次,那么1s就需要1000次计数,所以有如下定义:
  1. #define EE_TICKS_PER_SEC           1000

7、主函数
  1. int main(void)
  2. {        
  3.         int argc;
  4.         char *argv[]={"1","2"};
  5.                
  6.         SystemInit();
  7.         TimerInit();
  8.         LedInit();
  9.         SerialInit();
  10.         DelayInit();
  11.         
  12.         printf("SystemCoreClock=%d\r\n",SystemCoreClock);

  13.         core_main(argc,argv);
  14.         
  15.         while(1)
  16.         {
  17.                 SystemRun();
  18. }
  19. }

8、下载运行
c-6.png
可以看出,使用mdk编译,优化等级设置为3,在120MHZ的时候跑分为315。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:stm32/LoRa物联网:304350312

65

主题

785

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:stm32/LoRa物联网:304350312

65

主题

785

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部