1

余分な機能コードとライブラリ依存関係のない単純な C 言語プログラムを作成します。

void main()
{
}

「Test.c」として保存し、arm Architect 用に「arm-linux-gcc」でコンパイルし、elf 形式のファイル「Test」を出力します。コマンドは「arm-linux-gcc Test.c -o Test -static」です。 "。次に、電力シミュレーター ツール「Sim-Panalyzer」を使用してファイル「Test」の電力を見積もると、エコー情報に「fatal:non-speculative fault (2) detected @ 0x00013c58」と表示されます。そこで、コマンド「readelf -S Test」を使用して、アドレスがセグメント「.text」にあることを確認し、コマンド「arm-linux-objdump Test -Sl -j .text > a.txt」を使用して情報を a に出力します。ファイル「a.txt」。私は住所を見つけ、ここで情報を学びます:

   13c48:   1affffd4    bne 13ba0 <_dl_aux_init+0x8c>
   13c4c:   e352000f    cmp r2, #15
   13c50:   e59d201c    ldr r2, [sp, #28]
   13c54:   e59d3018    ldr r3, [sp, #24]
   13c58:   e5892000    str r2, [r9]

ここで、 gcc ライブラリ「glibc-2.9/elf/dl-support.c」の関数「 dl_aux_init 」でエラーが発生していることは明らかですが、このバグの処理方法がわかりません。glibc のエラーが信じられないので、誰かがこのエラーの原因を見つけるのを手伝ってくれることを願っています。「Sim-Panalyzer」の使い方に問題はありますか?

4

1 に答える 1

0

エラーは奇妙ですが、その理由は、最新の「arm-linux-gcc」バージョン(4.3.2)を使用して、この問題を引き起こしたためです。ツールのバージョンをサイトhttp://ftp.arm.linux.org.uk/pub/armlinux/toolchain/からダウンロードした2.95.3に変更すると、すべて問題なく動作します。ツール「sim-panalyzer2.0」には何もないことは明らかです。

于 2012-10-07T08:38:51.983 に答える