3

埋め込みターゲットのC++ソースコードでコードカバレッジを実行したいと思います。基本的な考え方は、gccを使用して-frofile-arcs-ftest-coverageをオンにしてエルフを生成することです。それをARMデバイスにダウンロードし、データを収集して、gcovを使用してコードカバレッジを分析します。

arm-none-eabi-gccコマンドを使用してelfファイルを生成するにはどうすればよいですか。GNU ARMツールチェーンをセットアップし、env変数を設定しました。arm-none-eabi-g ++ -c -mthumb -mcpu = cortex-m3 -fprofile-arcs -ftest-coverage filename.cpp -o filename.elfを使用できますか?

前もって感謝します!

4

2 に答える 2

1

いいえ、もっと多くのことをする必要があります。gcov ライブラリとリンクする必要があります。これは、リンカー スクリプトに .got および .plt セクションがあることを期待して、-lgov および -fprofile-arcs リンカー フラグを使用して実行できます。

上記では、.gcno ファイルのみが生成されます。.gcda ファイルは、実行時にハードウェア内で生成されます。アプリケーションが終了するのを待つか、独自のラッパーを追加して .gcda ファイルを作成します。

最後に、この .gcda ファイルをハードウェアから取り出す方法を見つける必要があります。

すべての avvoe は
https://mcuoneclipse.com/2014/12/26/code-coverage-for-embedded-target-with-eclipse-gcc-and-gcov/でよく説明されています

于 2016-06-17T07:45:25.193 に答える
0

あなたがやろうとしていることが実際に可能かどうかはわかりません。GCCのこれらのプロファイリングオプションには、オペレーティングシステムのサポートが必要だと思います。Keil/ARMから入手できるプロファイリングツールを検討したほうがよいでしょう。Streamlineプロファイラーのコミュニティバージョンがあります。ARMWebisteをチェックしてください。

于 2012-11-19T23:43:37.707 に答える