S7-200SMART/6ES7288-3AT04-0AA0
在嵌入式領(lǐng)域有一個軟件被看作是一種信仰,與PC電腦的Fritz Chess Benchmark評測類似,這個軟件的名字叫CoreMark。CoreMark和Fritz Chess Benchmark都是用于評測CPU運(yùn)算性能的,MCU(單片機(jī))和Cortex-A MPU(微處理器)都可以用這個軟件庫評測性能,性能越高的MCU/MPU跑分越高;同型號MCU,主頻越高跑分越高。
CoreMark的源文件在STM32的和各大DIY論壇都能找到,順帶移植手冊,這里把手冊上傳一下,步驟都在里面,很詳細(xì):
關(guān)鍵點(diǎn)一,systick設(shè)置,由于CoreMark的跑分需要頻繁進(jìn)入systick溢出中斷進(jìn)行計時,因此systick的中斷服務(wù)函數(shù)要重寫:
關(guān)鍵點(diǎn)二,初始化設(shè)置,由于CoreMark的運(yùn)行需要串口打印和RCC時鐘的支持,因此較簡單的情況下至少要初始化RCC和LPUART1外設(shè)。
關(guān)鍵點(diǎn)三,關(guān)于CoreMark信息輸出的設(shè)置,CoreMark信息輸出是用ee_printf函數(shù)進(jìn)行,這個函數(shù)在coremark.h默認(rèn)被復(fù)用為printf函數(shù),而printf函數(shù)則被fputc進(jìn)行弱類型定義,所以,大家也可以將它復(fù)用為別的信息輸出手段,如LCD屏幕輸出、網(wǎng)絡(luò)Socket等等。
移植成功之后不是可以立刻跑分的,需要修改堆棧的大小,一般堆跟棧都大于0x1000就可以了,L4+板子的FLASH大,設(shè)置大點(diǎn)沒關(guān)系:
后,關(guān)于Optimize for time優(yōu)化的問題,剛剛移植完成CoreMark工程的時候跑分非常低,只有205分,弄了兩天晚上也沒有頭緒,.s啟動文件改過,conf.件也改過,就是沒法提高到網(wǎng)上預(yù)期的311分(120MHz),后面在一個偶然的機(jī)會發(fā)現(xiàn)了工程配置選項(xiàng)中有個Optimize for time的復(fù)選框,選上之后跑分立馬就升到311了,據(jù)網(wǎng)上的解釋是這個選項(xiàng)剔除了很多不必要的累贅定義,能大大優(yōu)化編譯速度。
S7-200SMART/6ES7288-3AT04-0AA0