1

セクション変数が 4 バイト アラインされていないアドレスを取得する GNU リンカ スクリプトを使用していbssます。変数アドレスがハードウェアで使用されているため、ワード アライン アドレスが必要なため、これは大きな問題です。

それらの 1 つの align 属性を使用する代わりに、10 個の変数がある場合、またはリンカに特定のセクション内の各変数のワード アラインメント アドレスを生成させたい場合、どうすればよいでしょうか?

使ってみALIGN()ましたが効果なし。

これは例です:

 .bss.a 9cdf8        0x1

 .bss.b 9cdf9        0x1

.bss.b私は取得0x9cdf8 + 4したいので、すべての変数についてそうします。

どうすればこれを達成できますか?

4

1 に答える 1

0

おそらく、定義されている場所で 4 バイトのアラインメントが必要な変数をマークするのが最善でしょう。たとえば、gcc では次のようになります。

char a __attribute__((aligned(4)));
char b __attribute__((aligned(4)));

http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Variable-Attributes.htmlを参照してください。

于 2013-10-30T19:12:36.717 に答える