スキャッタファイル内の式の評価を使用したパディングの回避

スキャッタファイルで ALIGNALIGNALL、または FIXED 属性を使用すると、イメージに大量のパディングが挿入される場合があります。 このパディングを削除するには、式の評価を使用して、ロード域と実行領域の開始アドレスを指定します。 アドレス式の指定には、組み込み関数 AlignExpr を使用できます。

Show/hideスキャッタファイルでのパディングの回避例

以下のスキャッタファイルでは、生成されたイメージにパディングが挿入されます。

LR1 0x4000
{
    ER1 +0 ALIGN 0x8000
    {
        ...
    }
}

ALIGN キーワードを使用すると、ER1 はロードビューと実行ビューの両方で 0x8000 の境界で整列されます。 ロードビューで整列させるためには、リンカは 0x4000 バイトのパディングを挿入する必要があります。

以下のスキャッタファイルでは、生成されたイメージにパディングが挿入されません。

LR1 0x4000
{
    ER1 AlignExpr(+0, 0x8000)
    {
        ...
    }
}

AlignExpr を使用すると、+0 の結果は 0x8000 の境界で整列されます。 そのため、作成される実行領域のロードアドレスは 0x4000 になりますが、実行アドレスは 0x8000 になります。

Show/hide関連項目

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0474GJ
Non-ConfidentialID051612