2.4 デフォルトのメモリマップ

メモリマップが記述されていないイメージでは、リンカがデフォルトのメモリマップに従ってコードとデータを配置します。

図 2-2 デフォルトのメモリマップ
この図を表示するには、ご使用のブラウザが SVG 形式をサポートしている必要があります。ネイティブでサポートしているブラウザをインストールするか、次のような適切なプラグインをインストールします。Adobe SVG Viewer。.

ARMv6-M および ARMv7-M アーキテクチャに基づくプロセッサには、固定されたメモリマップがあります。そのため、上記のプロセッサをベースにしたさまざまなシステムの間では、ソフトウェアのポート指定が容易になります。

デフォルトのメモリマップは以下のように記述されます。

  • イメージは、アドレス 0x8000 でロードおよび実行されるようにリンクされます。すべての読み出し専用(RO)セクションが最初に配置され、その後、読み出し-書き込み(RW)セクション、ゼロで初期化された(ZI)セクションの順に配置されます。

  • ヒープは ZI の先頭から配置されるため、正確な位置はリンク時に決まります。

  • スタックベースの位置は、アプリケーションの起動時のセミホスティングオペレーションによって決まります。このセミホスティングオペレーションによって返される値は、デバッグ環境によって異なります。

リンカは、一連の規則に基づいて、メモリ内でのコードとデータの配置場所を決定します。

図 2-3 リンカの配置規則
この図を表示するには、ご使用のブラウザが SVG 形式をサポートしている必要があります。ネイティブでサポートしているブラウザをインストールするか、次のような適切なプラグインをインストールします。Adobe SVG Viewer。.

一般的に、リンカは、入力セクションをまず属性および名前でソートし、次に入力リスト内の位置に基づいてソートします。

コードとデータの配置を正確に制御するには、スキャッタロードメカニズムを使用する必要があります。

関連する概念
2.6 ターゲットハードウェアに合わせた C ライブラリのカスタマイズ
関連情報
イメージの構造
リンカによるセクションの配置
スキャッタロードについて
スキャッタファイル構文
『Cortex-M1 テクニカルリファレンスマニュアル』
『Cortex-M3 テクニカルリファレンスマニュアル』
非機密扱いPDF file icon PDF 版ARM DUI0471JJ
Copyright © 2010-2013 ARM.All rights reserved.