2012-01-02 173 views
6

我想知道如何在裸機系統(ARM Cortex a8)上剖析軟件?以前我使用的是內置基準統計的模擬器,現在我想比較真實硬件(運行在BeagleBoard-Xm上)的結果。裸機嵌入式系統(ARM)剖析

我知道你可以使用gprof,但是我有點迷路,因爲假設你必須在目標系統上運行Linux?

我使用Codesourcery的arm-none-eabi交叉編譯器構建可執行文件,目標系統運行FreeRTOS。

回答

3

仔細評估你的意思是「分析」。你確實在非常接近裸機的情況下工作,並且很可能你會被要求承擔由gprof這樣的工具執行的一些工作。

你想調用一個函數嗎?還是ISR?在進入和退出正在檢查的代碼時如何切換GPIO線路。數據記錄器或示波器可以設置爲觸發這些事件。 (根據我的經驗,數據記錄器更方便,因爲我的配置可以捕獲這些事件的序列 - 使我可以計算平均時間。)

是否要計算執行次數? Cortex A8配備了許多功能(如可配置的事件計數器),可以幫助:link。您的ARM芯片可能配備了其他可以使用的外設(取決於供應商)。無論如何,看看上面的鏈接 - 新的ARM有很多很酷的功能,我不能儘可能多地玩! ;-)

+0

我在想如果有可能使用像gprof這樣的分析工具來收集有關各種數據的信息,例如時鐘週期,調用圖,每個函數花費的時間,調用的數量。不過,如果我能從開始到結束運行應用程序需要多少個時鐘週期,我很高興。你給我的鏈接很好,我會研究一下,Thx! – MrGigu 2012-01-02 17:30:59

+0

嗨,我得到了時鐘週期計數器的工作,但是我想知道是否有可能使用PMU(性能監視器單元)的功能?我也有一個flyswatter 2調試器,也許可以用於某些東西?我是否需要購買數據記錄器或示波器來計算硬件時間?我從來沒有使用過這些,而且它們非常昂貴! – MrGigu 2012-01-05 09:58:41

+0

這是一個價格合理的邏輯分析儀。它對我來說足夠好用了:http://www.nci-usa.com/frame_products_overview.htm。一些PMU統計數據可以導出到ETM--從那裏可以使用Flyswatter的JTAG接口訪問它們。 (我只是猜測)。 – Throwback1986 2012-01-05 14:41:56

2

我已經成功地爲ARM Cortex M進行分析工作。由於GNU ARM嵌入式(launchpad)工具不附帶分析庫,我添加了必要的粘連和分析功能。 參考文獻: 請參閱http://mcuoneclipse.com/2015/08/23/tutorial-using-gnu-profiling-gprof-with-arm-cortex-m/

我希望這會有所幫助。

+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分,並提供供參考的鏈接。如果鏈接頁面發生變化,僅鏈接答案可能會失效 https://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers/8259#8259 – 2015-08-24 04:52:04

+0

要批評或要求作者澄清,在他們的帖子下留下評論。 – Bruce 2015-08-24 05:03:08