簡體   English   中英

手臂裸機系統的CPU使用率測量

[英]CPU usage measurment on arm bare metal system

我正在研究ARM cortex M4評估板,它是一個bare metal應用,沒有運行任何操作系統。

現在我想測量給定進程/算法的CPU使用率,這樣做的最佳方法是什么?

我應該實現一個操作系統來衡量具有此類需求功能的CPU使用率嗎?

這個問題幾乎可以解決。 當您的裸機應用程序不在該流程/算法中時,它的作用是什么? 測量一個或另一個或兩者。 如果你的裸機應用程序沒有完全消耗這個算法中的cpu,那么你已經擁有了一個操作系統,只要你管理這個應用程序/函數的時間。 您可以使用循環中相對於計時器的簡單計數器中的多種方法來查看算法獲取時間片與否時每個循環計數的數量。 您可以簡單地計算算法本身等。

我假設你說CPU意味着整個系統,因為你的性能嚴重依賴於你的代碼和它所說的內容。 如果根據時鍾速率從cortex-m4上的閃存運行,您可能正在等待處理器周期等待指令或數據(並且當算法不燃燒時鍾時,很容易得到錯誤的處理器性能概念)。 緩存掩蓋/操縱該性能,如果您不小心並意識到它們正在做什么,它們很容易對性能產生很大影響。 作為一個C ++問題,您的編譯器在性能和代碼中扮演着重要角色,可以非常輕松地使代碼運行速度或速度快幾倍,而對命令行或代碼的更改最少。

如果算法是isr的一部分,則處理器進入休眠狀態,否則,您可以使用gpio引腳和范圍techinique來了解運行與睡眠比率。

實現一個操作系統來測量CPU的空閑時間對我來說似乎有點過分。 據我所知,Cortex-M4包含一個調試單元(DWT),允許您對循環計數器進行快照。 但最簡單的方法是將一個引腳連接到示波器,並在算法的輸入和退出時切換它。

首先,所有實施操作系統都不實用,甚至不可能僅用於測量性能。因此,一種可能的方法是保留一個計數變量,該變量將記錄在該持續時間內發生的滴答數。 並在Timer的中斷中遞增該變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM