8.6.11 ロード領域に厳密に配置した状態で、実行領域でベースアドレスに合わせる例

この例では、厳密に配置された実行領域をページ境界の実行アドレスにコピーするために、プリプロセッサマクロと式の組み合わせの使用方法を示します。

ALIGN スキャッタロードキーワードを使用すると、 ロードアドレス ER2ER3 および実行アドレスが整列されます。
ロード空間内に厳密に配置した状態で、実行空間内でベースアドレスを整列する例
#! armcc -E
#define START_ADDRESS  0x100000
#define PAGE_ALIGNMENT 0x100000

LR1 0x8000
{
    ER0+0
    {
        *(InRoot$$Sections)
    }
    ER1 START_ADDRESS
    {
        file1.o(*)
    }
    ER2 AlignExpr(ImageLimit(ER1), PAGE_ALIGNMENT)
    {
        file2.o(*)
    }
    ER3 AlignExpr(ImageLimit(ER2), PAGE_ALIGNMENT)
    {
        file3.o(*)
    }
}
関連する概念
8.6.1 式の評価の数値定数を指定するメソッド
関連する参考文書
8.3.3 ロード領域の属性
8.4.3 実行領域の属性
8.6.9 GetPageSize() 関数
8.6.10 SizeOfHeaders() 関数
8.3.2 ロード領域記述の構文
8.4.2 実行領域の記述に含まれている構文
8.6.8 AlignExpr(expr, align) 関数
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.