国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于極海APM32E103 MCU的CoreMark測試方法

Geehy極海半導體 ? 來源:21ic論壇極海半導體專區 ? 2025-06-12 09:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

均轉載自21ic論壇極海半導體專區

CoreMark是專門用于測試處理器內核性能的基準測試程序,測試的內容有:列表處理(查找和排序)、矩陣操作(常見的矩陣操作)、狀態機(確定輸入流是否包含有效數字)和CRC(循環冗余檢查),通過CoreMark跑分可以了解到MCU的算力。下面以APM32E103芯片和Keil為例,介紹一下如何在APM32上面運行CoraMark測試。CoreMark需要定時器用于計時,還需要用串口來打印輸出測試結果。

1、獲取相關代碼

在極海官網可以下載SDK:

https://www.geehy.com/uploads/tool/APM32E10x_SDK_V1.2.zip

打開 “APM32E10x_SDK_V1.1ExamplesUSARTUSART_PrintfProjectMDKUSART_Printf.uvprojx”,這個工程已經有串口和滴答定時器的初始化,便于修改。

在CoreMark的GitHub下載庫:

https://github.com/eembc/coremark.git

*網速太慢的話可以在國內Gitee下載:

https://gitee.com/ssri-mirrors/coremark.git

2、實現串口打印printf

先初始化串口,直接用SDK本來的代碼就行。

然后重定義fputc(),以便能通過printf()輸出信息到串口調試助手。

struct __FILE

{

int handle;

};

FILE __stdout;

int fputc(int ch, FILE *f)

{

while(USART_ReadStatusFlag(USART1, USART_FLAG_TXBE) == RESET);

USART_TxData(USART1, ch);

return ch;

}

3、實現計時函數GETMYTIME

使用滴答定時器或者普通定時器都可以,這里以滴答定時器為例,每隔10ms中斷一次。

SysTick_Config(SystemCoreClock / 100);

在中斷服務中需要一個全局變量進行10毫秒級計時。

void SysTick_Handler(void)

{

tick++;

}

4、添加CoreMark源代碼

將下載的CoreMark庫解壓到工程目錄下,在Keil工程中添加這幾個文件,其中 core_portme.c 在文件夾simple里面。

df7832de-42b7-11f0-b715-92fbcf53809c.png

還要在工程設置中添加相關頭文件的路徑

e041f844-42b7-11f0-b715-92fbcf53809c.png

把 core_main.c 中的 main(int argc, char *argv[]) 改為 coremark_main(int argc, char *argv[]) 以免編譯報錯。

MAIN_RETURN_TYPE

coremark_main(int argc, char *argv[])

在真正的int main()函數中調用 coremark_main 函數。

coremark_main(0,NULL); //正常開始運行測試算法

5、配置CoreMark

完成以上步驟后編譯會報兩個錯:

....coremark-maincore_main.c(383): error: #20: identifier "FLAGS_STR" is undefined

....coremark-mainsimplecore_portme.c(38): error: #20: identifier "ITERATIONS" is undefined

第1個錯誤是說沒定義 FLAGS_STR 這個字符串,這個是用來編譯優化等級的,在 core_portme.h 添加這個字符串。

#define COMPILER_FLAGS "Level 0"

第2個錯誤是說沒定義 ITERATIONS 這個值,這個值決定了CoreMark算法執行的次數,對于性能越高的MCU這個值應該越大,在core_portme.c中添加這個宏定義, 這里先設個1000,后面根據需要再調整。

#define ITERATIONS 1000

接下來要配置關于時間的代碼,還是core_portme.c這個文件,將之前中斷服務函數計數的變量賦給 *_t ,同時也要包含tick變量的聲明。

#define NSECS_PER_SEC CLOCKS_PER_SEC

#define CORETIMETYPE clock_t

#define GETMYTIME(_t) (*_t = tick )

注意 CLOCKS_PER_SEC 這個宏,它表示每秒的時鐘數,也就是一秒內tick計數的增加量,如果tick每隔10ms加一,那么CLOCKS_PER_SEC應該等于100;如果tick每隔1ms加一,那么CLOCKS_PER_SEC應該等于1000;

6、增加棧的大小

CoreMark運行時需要較大的棧空間,默認棧大小不夠,需要改大。

打開CMSIS欄中的啟動文件 startup_apm32e10x_hd.s ,把棧Stack_Size 增加到 2KB 。

Stack_Size EQU 0x00000800

7、下載程序并執行

編譯并下載程序,等待10多秒后串口輸出測試結果。

有時優化等級提高了,或者換了更強的MCU測試,會出現算法執行時間小于10秒的提示:

e0513854-42b7-11f0-b715-92fbcf53809c.png

這時只需要把 ITERATIONS 改大就行了。

#define ITERATIONS 2000

把優化等級提到最高,測得CoreMark 1.0跑分為139.958。

e065bcd4-42b7-11f0-b715-92fbcf53809c.png

以上就是用CoreMark庫對APM32E103進行性能測試的方法及步驟,對其他芯片的測試方法也是大同小異。

注:文章作者在原帖中提供了例程文件,有需要請至原文21ic論壇下載

原文地址:https://bbs.21ic.com/icview-3331250-1-1.html

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    20250

    瀏覽量

    252209
  • mcu
    mcu
    +關注

    關注

    147

    文章

    18924

    瀏覽量

    398025
  • 測試
    +關注

    關注

    9

    文章

    6201

    瀏覽量

    131346
  • 定時器
    +關注

    關注

    23

    文章

    3368

    瀏覽量

    123591
  • 極海半導體
    +關注

    關注

    0

    文章

    209

    瀏覽量

    4825

原文標題:APM32芯得 EP.56 | 基于APM32E103的CoreMark測試方法

文章出處:【微信號:geehysemi,微信公眾號:Geehy極海半導體】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    新品發布丨半導體推出工業級標準型APM32S103系列MCU

    半導體最新宣布推出,基于32位Arm Cortex-M3內核的 工業級標準型 APM32S103系列MCU 。該系列新品作為APM32F103
    的頭像 發表于 12-16 18:24 ?2999次閱讀

    推出APM32A全系列車規級MCU

    ? 宣布推出具有高效CPU處理性能、增強型存儲空間、以及豐富連接功能的 APM32A 系列車規級MCU,以有效滿足汽車電子多樣化通信與車身控制應用開發需求,可廣泛應用于車身控制、安
    發表于 02-02 14:47 ?1631次閱讀
    <b class='flag-5'>極</b><b class='flag-5'>海</b>推出<b class='flag-5'>APM</b>32A全系列車規級<b class='flag-5'>MCU</b>

    推出APM32A系列車規級MCU芯片

    宣布推出具有高效CPU處理性能、增強型存儲空間、以及豐富連接功能的APM32A系列車規級MCU,以有效滿足汽車電子多樣化通信與車身控制應用開發需求,可廣泛應用于車身控制、安全系統、
    發表于 02-21 14:21

    APM32F103RCT7通過AEC-Q100車規認證

    APM32F103RCT7 MCU芯片經過廣電計量等第三方權威機構檢測,順利通過AEC-Q100車規認證。
    發表于 02-07 10:38 ?3156次閱讀
    <b class='flag-5'>極</b><b class='flag-5'>海</b><b class='flag-5'>APM32F103</b>RCT7通過AEC-Q100車規認證

    Flasher在線燒錄器全面支持APM32系列MCU

    半導體常務副總經理王遠學表示:“非常有幸能與SEGGER達成合作,目前APM32系列MCU
    的頭像 發表于 09-08 11:10 ?3242次閱讀

    半導體APM32E103/F072系列MCU順利通過IEC 60730功能安全認證

    近日,半導體APM32E103/APM32F072系列MCU,順利通過IEC 60730功能安全認證,并提供符合B類標準的軟件安全庫,有
    發表于 09-29 14:17 ?1923次閱讀

    APM32F407xG移植coremark教程

    APM32F407xG移植coremark教程
    發表于 09-29 15:51 ?1次下載

    APM32E103xCxE數據手冊

    APM32E103xCxE數據手冊
    發表于 11-09 21:03 ?3次下載
    <b class='flag-5'>APM32E103</b>xCxE數據手冊

    APM32E103VET6_LSE_RTC不走時

    APM32E103VET6_LSE_RTC不走時
    發表于 11-09 21:03 ?2次下載
    <b class='flag-5'>APM32E103</b>VET6_LSE_RTC不走時

    APM32E103ZE EVAL 原理圖

    APM32E103ZE EVAL 原理圖
    發表于 11-09 21:04 ?0次下載
    <b class='flag-5'>APM32E103</b>ZE EVAL 原理圖

    喜報頻傳!APM32工業級/車規級MCU產品接連榮獲三項大獎

    半導體喜報頻傳接連榮獲三項大獎。半導體“工業級高安全MCU APM32F415”、 “工
    發表于 11-21 15:17 ?1097次閱讀

    推出首款電機控制專用芯片APM32F035系列MCU

    宣布正式推出首款高性能、高可靠性、高性價比的電機控制專用芯片—APM32F035系列MCU,覆蓋多種電機應用。
    的頭像 發表于 07-28 17:13 ?2818次閱讀
    <b class='flag-5'>極</b><b class='flag-5'>海</b>推出首款電機控制專用芯片<b class='flag-5'>APM</b>32F035系列<b class='flag-5'>MCU</b>

    基于半導體APM32F407系列MCU的伺服控制器應用方案

    基于半導體APM32F407系列MCU的伺服控制器應用方案
    的頭像 發表于 09-19 16:48 ?2305次閱讀
    基于<b class='flag-5'>極</b><b class='flag-5'>海</b>半導體<b class='flag-5'>APM</b>32F407系列<b class='flag-5'>MCU</b>的伺服控制器應用方案

    APM32F072xBT7硬件兼容ST電動車應用方案mcu

    APM32F072xBT7硬件兼容ST電動車應用方案MCU 隨著電動車市場的不斷發展,對于電動車控制器的要求也越來越高。而作為電動車控制器的核心部件,
    的頭像 發表于 03-04 21:30 ?1516次閱讀

    APM32E030/F402系列MCU通過IEC 60730/60335功能安全認證

    近日,APM32E030系列基礎拓展型MCU、APM32F402系列高性能高性價比MCU通過
    的頭像 發表于 08-29 13:57 ?1178次閱讀
    <b class='flag-5'>極</b><b class='flag-5'>海</b><b class='flag-5'>APM32E</b>030/F402系列<b class='flag-5'>MCU</b>通過IEC 60730/60335功能安全認證