余分な機能コードとライブラリ依存関係のない単純な 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」の使い方に問題はありますか?