很多人說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文章
7542瀏覽量
151316 -
mcu
+關注
關注
146文章
17123瀏覽量
350992 -
STM32
+關注
關注
2270文章
10895瀏覽量
355743
發布評論請先 登錄
相關推薦
評論