メモリマップが単純なイメージ

イメージのメモリマップが単純な場合には、以下のいずれかの方法を使用できます。

以下の図には、単純なメモリマップを示しています。

Figure 6. スキャッタロードを行った単純メモリマップ

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.


以下の例では、セグメントをオブジェクトファイルからメモリにロードする、対応するスキャッタロード記述を示しています。

Example 10. スキャッタファイルにおける単純メモリマップ

LOAD_ROM 0x0000 0x8000       ; ロード領域の名前(LOAD_ROM)、
                             ; ロード領域の開始アドレス(0x0000)、
                             ; ロード領域の最大サイズ(0x8000)
{
    EXEC_ROM 0x0000 0x8000   ; 最初の実行領域の名前(EXEC_ROM)、
                             ; 実行領域の開始アドレス(0x0000)、
                             ; 最初の実行領域の最大サイズ(0x8000)
    {
        * (+RO)              ; すべてのコードと RO データを
                             ; この実行領域に配置する
    }

    SRAM 0x10000 0x6000      ; 2 番目の実行領域の名前(RAM)、
                             ; 2 番目の実行領域の開始アドレス(0x10000)、
                             ; 2 番目の実行領域の最大サイズ(0x6000)
    {
        * (+RW, +ZI)         ; すべての RW データと ZI データを
                             ; この実行領域に配置する
    }
}

領域の最大サイズを指定するかどうかは任意です。 ただし、指定することによって、その領域が境界からオーバーフローしないかどうかをチェックできます。

この例では、以下のリンカコマンドラインを使用することにより、制限のチェック以外は同じ結果を得ることが出来ます。

armlink --ro_base 0x0 --rw_base 0x10000

Show/hide関連項目

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