首頁(yè) > 評(píng)測(cè) > 【SWDM-QFP100-34SVEA3測(cè)評(píng)】+CoreMark移植跑分
【SWDM-QFP100-34SVEA3測(cè)評(píng)】+CoreMark移植跑分
- [導(dǎo)讀]
- 本帖最后由 freeelectron 于 2023-5-24 10:29 編輯 #申請(qǐng)?jiān)瓌?chuàng)# CoreMark是一項(xiàng)測(cè)試處理器性能的基準(zhǔn)測(cè)試。代碼使用C語(yǔ)言寫成,包含:列舉,數(shù)學(xué)矩陣操作和狀態(tài)及CRC等運(yùn)算法則; 目前CoreMark已迅速成為
本帖最后由 freeelectron 于 2023-5-24 10:29 編輯
#申請(qǐng)?jiān)瓌?chuàng)#
CoreMark是一項(xiàng)測(cè)試處理器性能的基準(zhǔn)測(cè)試。代碼使用C語(yǔ)言寫成,包含:列舉,數(shù)學(xué)矩陣操作和狀態(tài)及CRC等運(yùn)算法則;
目前CoreMark已迅速成為測(cè)量與比較處理器性能的業(yè)界標(biāo)準(zhǔn)基準(zhǔn)測(cè)試。CoreMark的得分越高,意味著性能更高;
CoreMark官網(wǎng)的連接地址:http://www.eembc.org/coremark;
本文將一步步來(lái)介紹如何將下載的CoreMark測(cè)試代碼移植到SWDM-QFP100-34SVEA3開(kāi)發(fā)板上進(jìn)行測(cè)試。
源碼地址 https://github.com/eembc/coremark
1、源碼結(jié)構(gòu)
主要分為兩部分,源碼和接口代碼,其中接口代碼針對(duì)不同的平臺(tái),有不同的文件夾,針對(duì)單片機(jī),我們使用simple文件夾中的即可。
2、將代碼添加進(jìn)工程
3、編譯報(bào)錯(cuò)處理
FLAGS STR:優(yōu)化等級(jí),需要替換,這里要與編譯器的優(yōu)化等級(jí)一致,本次移植設(shè)置為:
- #define COMPILER_FLAGS "-o3" ;
ITERATIONS:算法運(yùn)行的次數(shù),這個(gè)值的設(shè)置必須確保,運(yùn)行的時(shí)間大于10s,否則,會(huì)報(bào)錯(cuò),本次移植設(shè)置為:
- #define ITERATIONS 4000
4、main函數(shù)重復(fù)定義
在core_main.c文件中的main函數(shù)與原來(lái)工程中的重復(fù),修改為core_main:
5、啟動(dòng)時(shí)間、停止時(shí)間、獲取當(dāng)前時(shí)間函數(shù)接口
使用定時(shí)器4實(shí)現(xiàn)了一個(gè)1ms中斷一次的計(jì)數(shù)器
start_time(void):啟動(dòng)時(shí)間
- void
- start_time(void)
- {
- // GETMYTIME(&start_time_val);
- start_time_val=(CORETIMETYPE)GetSystemTick();
- }
stop_time:結(jié)束時(shí)間
- void
- stop_time(void)
- {
- // GETMYTIME(&stop_time_val);
- stop_time_val=(CORETIMETYPE)GetSystemTick();
- }
get_time:運(yùn)行時(shí)間,停止時(shí)間計(jì)數(shù)減去啟動(dòng)時(shí)間,兩個(gè)的差就是運(yùn)行時(shí)間
- CORE_TICKS
- get_time(void)
- {
- CORE_TICKS elapsed
- = (CORE_TICKS)(MYTIMEDIFF(stop_time_val, start_time_val));
- return elapsed;
- }
6、時(shí)間顆粒度定義
由于我們是1ms中斷一次,即就是1ms計(jì)數(shù)一次,那么1s就需要1000次計(jì)數(shù),所以有如下定義:
- #define EE_TICKS_PER_SEC 1000
7、主函數(shù)
- int main(void)
- {
- int argc;
- char *argv[]={"1","2"};
- SystemInit();
- TimerInit();
- LedInit();
- SerialInit();
- DelayInit();
- printf("SystemCoreClock=%d\r\n",SystemCoreClock);
- core_main(argc,argv);
- while(1)
- {
- SystemRun();
- }
- }
8、下載運(yùn)行
可以看出,使用mdk編譯,優(yōu)化等級(jí)設(shè)置為3,在120MHZ的時(shí)候跑分為315。
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評(píng)論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開(kāi)放投稿
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開(kāi)發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開(kāi)發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開(kāi)發(fā)
預(yù)算:¥1100001天前