256 バイト境界を越えない配列を作成することは可能ですか? つまり、個々の配列項目のアドレスは下位バイトのみが異なります。これは、配列を 256 バイトに揃えるよりも弱い要件です。私が考えることができる唯一の解決策は、に合わせることでしたがnext_power_of_two(sizeof(array))
、このように現れるギャップについてはわかりません.
これは AVR マイクロコントローラー用のライブラリー用であり、これにより、割り込みハンドラーでいくつかの貴重な命令を節約できます。このプロパティを持つ必要がある配列は、ライブラリーによって使用される約 80 バイトの合計静的メモリーのうち 54 バイトの長さです。メモリ要件を増やさない方法を探しています。
avr-as gnu アセンブラーと avr-ld リンカーを使用しています。
例: 配列がアドレス 0x00f0 で開始する場合、上位ワードは配列を走査する間に 0x00 から 0x01 に変化します。
境界を越えない限り、アドレス 0x0100 から始まるか 0x0101 から始まるかはあまり気にしません。