www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

首頁 > 評測 > 【SWDM-QFP100-34SVEA3測評】+CoreMark移植跑分

【SWDM-QFP100-34SVEA3測評】+CoreMark移植跑分

  
  • 作者:
  • 來源:
  • [導(dǎo)讀]
  • 本帖最后由 freeelectron 于 2023-5-24 10:29 編輯 #申請原創(chuàng)# CoreMark是一項測試處理器性能的基準(zhǔn)測試。代碼使用C語言寫成,包含:列舉,數(shù)學(xué)矩陣操作和狀態(tài)及CRC等運算法則; 目前CoreMark已迅速成為

本帖最后由 freeelectron 于 2023-5-24 10:29 編輯

#申請原創(chuàng)#

CoreMark是一項測試處理器性能的基準(zhǔn)測試。代碼使用C語言寫成,包含:列舉,數(shù)學(xué)矩陣操作和狀態(tài)及CRC等運算法則;
目前CoreMark已迅速成為測量與比較處理器性能的業(yè)界標(biāo)準(zhǔn)基準(zhǔn)測試。CoreMark的得分越高,意味著性能更高;
CoreMark官網(wǎng)的連接地址:http://www.eembc.org/coremark;

本文將一步步來介紹如何將下載的CoreMark測試代碼移植到SWDM-QFP100-34SVEA3開發(fā)板上進行測試。

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

1、源碼結(jié)構(gòu)


主要分為兩部分,源碼和接口代碼,其中接口代碼針對不同的平臺,有不同的文件夾,針對單片機,我們使用simple文件夾中的即可。

2、將代碼添加進工程



3、編譯報錯處理


FLAGS STR:優(yōu)化等級,需要替換,這里要與編譯器的優(yōu)化等級一致,本次移植設(shè)置為:

 

  1. #define COMPILER_FLAGS "-o3" ;
復(fù)制代碼


ITERATIONS:算法運行的次數(shù),這個值的設(shè)置必須確保,運行的時間大于10s,否則,會報錯,本次移植設(shè)置為:

  1. #define ITERATIONS        4000
  2.  
復(fù)制代碼


4、main函數(shù)重復(fù)定義


在core_main.c文件中的main函數(shù)與原來工程中的重復(fù),修改為core_main:



5、啟動時間、停止時間、獲取當(dāng)前時間函數(shù)接口
使用定時器4實現(xiàn)了一個1ms中斷一次的計數(shù)器
start_time(void):啟動時間

 

  1. void
  2. start_time(void)
  3. {
  4. //    GETMYTIME(&start_time_val);
  5.         start_time_val=(CORETIMETYPE)GetSystemTick();
  6. }
復(fù)制代碼

stop_time:結(jié)束時間

  1. void
  2. stop_time(void)
  3. {
  4. //    GETMYTIME(&stop_time_val);
  5.       
  6.         stop_time_val=(CORETIMETYPE)GetSystemTick();
  7. }
復(fù)制代碼

get_time:運行時間,停止時間計數(shù)減去啟動時間,兩個的差就是運行時間

  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. }
復(fù)制代碼


6、時間顆粒度定義
由于我們是1ms中斷一次,即就是1ms計數(shù)一次,那么1s就需要1000次計數(shù),所以有如下定義:

  1. #define EE_TICKS_PER_SEC           1000
復(fù)制代碼


7、主函數(shù)

  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.  
  14.         core_main(argc,argv);
  15.         
  16.         while(1)
  17.         {
  18.                 SystemRun();
  19. }
  20. }
復(fù)制代碼


8、下載運行


可以看出,使用mdk編譯,優(yōu)化等級設(shè)置為3,在120MHZ的時候跑分為315。

 

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開放投稿

熱門標(biāo)簽
項目外包 more+