7.4 メモリマップが単純なスキャッタロードイメージ

メモリマップが単純なイメージの場合は、リンカコマンドラインオプションのみを使用するか、またはスキャッタファイルによって、メモリマップを指定できます。

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

  • スキャッタファイルを使用します。

  • リンカコマンドラインオプションのみを使用して、メモリマップを指定します。

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

図 7-1 スキャッタロードを行った単純メモリマップ
この図を表示するには、ご使用のブラウザが SVG 形式をサポートしている必要があります。ネイティブでサポートしているブラウザをインストールするか、次のような適切なプラグインをインストールします。Adobe SVG Viewer。.

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

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

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

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

armlink --ro_base 0x0 --rw_base 0x10000

関連する概念
7.41 スキャッタファイルを使用した ELF のマッピング
7.1 スキャッタロードについて
7.2 スキャッタロードが使用される状況
関連する参考文書
12.119 --ro_base=address
12.123 --rw_base=address
12.171 --xo_base=address
非機密扱いPDF file icon PDF 版ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.