1

プロジェクトにARMELFツールチェーンを使用しています。私はブートローダーに取り組んでいます。ブートローダーはリセット時にフラッシュからRAMに自動的に再配置されるため、場所に依存しない必要があります。GNU ARMツールチェーンを使用して場所に依存しないコードをコンパイルする方法を理解しようと懸命に努力しましたが、それを機能させることができないようです。

コンパイラに-fpicおよび-fpieオプションを使用し、リンカに-pieオプションを使用しようとしましたが、これらのオプションを使用すると、コンパイラは.gotセクションまたは.pltセクションのいずれにもセクションが定義されていないと文句を言います。これらのセクションがどこに行くべきか、つまりBSSまたはTEXTのどこに行くべきかわかりません。これについてグーグルした後、私は-fpieだけを使うべきだと思いますが、よくわかりません。

これを経験した人が私を助けてくれませんか。GNUARM4.1.1を使用しています

4

1 に答える 1

0

仲間のアセンブラーにオプションとオプションを-mapcs-reentrant提供することarm-linux-gnueabi-gccで、位置独立コード [PIC] を生成できます。-Wa,-Kお気に入り:

arm-linux-gnueabi-gcc <other option> -mapcs-reentrant -Wa, -K <other option> files..
于 2015-04-08T10:55:30.083 に答える