很多人說STM32性能太弱,那你了解這個性能是如何得出來的嗎?
1寫在前面
我們經常聽見某手機發布會,安兔兔跑分多少多少,其實這個跑分就是體現手機性能的一個指標。
我們使用STM32開發產品,選擇MCU時,一般會綜合考慮MCU各方面性能。
對于MCU來說,一個重要指標是功耗,還有一個重要指標就是性能。
當我們進入ST官方微控制器網頁,就會發現ST將MCU劃分為不同層次,如下圖:
https://www.st.com/en/microcontrollers.html
從上面層次關系,大致可以了解ST各MCU的功耗和性能。
2
STM32 CoreMark跑分
STM32家族的32位微控制器基于ARM Cortex-M處理器設計,為用戶提供新的自由度。
產品集高性能、實時性、數字信號處理、低功耗、低壓運行、互聯性于一體,保持充分的集成化和易用性。
根據性能劃分,STM32各系列MCU劃分為如下圖幾大類產品。具體可以參看官網信息。
https://www.st.com/en/microcontrollers/stm32-32-bit-arm-cortex-mcus.html
在嵌入式處理器領域最為知名和常見測試CPU性能的就是:Dhrystone 和 CoreMark。
1.CoreMark是用來衡量嵌入式系統中中心處理單元(CPU,或叫做微控制器MCU)性能的標準。
2.DMIPS:Dhrystone Million Instructions executed Per Second。用來計算同一秒內系統的處理能力,它的單位以百萬來計算,也就是(MIPS)。主要用于測整數計算能力。
3
CoreMark跑分如何得來?
CoreMark是用來衡量CPU性能的標準。該標準于2009年由EEMBC組織的Shay Gla-On提出,并且試圖將其發展成為工業標準,從而代替陳舊的Dhrystone標準。
與Dhrystone一樣,CoreMark小巧,便攜,易于理解,免費,并且顯示單個數字基準分數。與Dhrystone不同,CoreMark具有特定的運行和報告規則,旨在避免Dhrystone的問題。
CoreMark跑分是通過運行C語言代碼得出來的分數。主要包含如下的運算法則:列舉(尋找并排序),數學矩陣操作(普通矩陣運算)和狀態機(用來確定輸入流中是否包含有效數字),最后還包括CRC(循環冗余校驗)。
也就是說CoreMark是使用一套用C語言編輯的測試代碼,我們通過運行這套代碼就能測試你MCU的性能。
4
CoreMark測試代碼
這里我們可以參考CoreMark官網信息,地址:
https://www.eembc.org/coremark/index.php
這里包含CoreMark相關說明、源代碼下載、移植說明等。源代碼位于Github,地址:
https://github.com/eembc/coremark
源碼docs目錄下包含與源碼相關的很多說明,感興趣可以下載來測試一下你MCU跑分多少。
其實,這里也有多種型號STM32的CoreMark跑分和測試結果:
STM32有些板子出廠就自帶CoreMark測試程序,比如我這邊手上有一個塊STM32F429I-Discovery的板子,就自帶性能測試代碼。
移植的過程,我這里就不教大家了,網上很多,也可以參看自帶說明文檔移植。
-
微控制器
+關注
關注
48文章
7553瀏覽量
151426 -
mcu
+關注
關注
146文章
17149瀏覽量
351216 -
STM32
+關注
關注
2270文章
10900瀏覽量
356054
發布評論請先 登錄
相關推薦
單片機Debug工具性能對比 單片機調試常用命令
TNC連接器對比分析:與其他射頻連接器的性能對決
![TNC連接器<b class='flag-5'>對比</b>分析:與其他射頻連接器的<b class='flag-5'>性能對</b>決](https://file1.elecfans.com/web3/M00/02/8F/wKgZPGdg6IyALeazAADQzc0qDYo889.png)
意法半導體STM32WL33系列無線MCU正式上市
NPU與GPU的性能對比
高性能MCU對比 MCU在智能家居中的應用
【GD32 MCU 移植教程】10、從STM32F030系列移植到GD32E230系列
![【GD32 <b class='flag-5'>MCU</b> 移植教程】10、從<b class='flag-5'>STM32</b>F030<b class='flag-5'>系列</b>移植到GD32E230<b class='flag-5'>系列</b>](https://file1.elecfans.com/web2/M00/06/88/wKgaombbuVSAcAARAABE_onyvsw162.png)
【GD32 MCU 移植教程】9、從 STM32F10x 系列移植到 GD32F30x 系列
![【GD32 <b class='flag-5'>MCU</b> 移植教程】9、從 <b class='flag-5'>STM32</b>F10x <b class='flag-5'>系列</b>移植到 GD32F30x <b class='flag-5'>系列</b>](https://file1.elecfans.com/web2/M00/04/DF/wKgZombVHYWASdt6AAA4EF8E1O4442.png)
【GD32 MCU 移植教程】8、從 STM32F4xx 系列移植到 GD32F4xx 系
![【GD32 <b class='flag-5'>MCU</b> 移植教程】8、從 <b class='flag-5'>STM32</b>F4xx <b class='flag-5'>系列</b>移植到 GD32F4xx 系](https://file1.elecfans.com/web2/M00/06/61/wKgaombaXZ6AB4PtAABI6uZ03C4508.png)
評論