2012-01-02 10 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

+0

こんにちは、私はクロックサイクルカウンタを持って、PMU(パフォーマンスモニタユニット)で時間を計ることが可能かどうか疑問に思っていますか?私もflyswatter 2デバッガを持っています、多分それは何かのために使用することができますか?データ・ロガーまたはオシロスコープを購入して、ハードウェアを稼働させる必要がありますか?私はそれらのどれも使用していないし、彼らはかなり高価です! – MrGigu

+0

これは合理的な価格のロジックアナライザです。それは十分に私のために働いた:http://www.nci-usa.com/frame_products_overview.htm。 PMUの統計情報の一部は、ETMにエクスポートできます。そこから、FlyswatterのJTAGインターフェイスを使用してアクセスすることができます。 (私はちょうど推測している)。 – Throwback1986

2

私はARM Cortex Mでプロファイリングを行うことができました。GNU ARM Embedded(ランチパッド)ツールにはプロファイリングライブラリが含まれていないため、必要なグルーとプロファイリング機能を追加しました。 参考: を参照してください。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 –

+0

投稿者の批判や説明を求めるには、投稿の下にコメントを残してください。 – Bruce

関連する問題