カスタマーサポートセンター

FAQ~よくある質問~ | FAQマスタ詳細表示

FAQ詳細情報

ID 10810789
FAQカテゴリ(大) リンカ
最終更新日 2015-03-02

質問内容

リンカ設定で連続しないメモリ領域を同一領域として定義する方法

回答内容

リンカ設定ファイル(.icf)内でメモリ領域を定義するにはdefine regionを使用します。通常はdefine symbol でスタートとエンドのアドレスを定義した後、define region内でfrom toを使用して領域を指定します。ただ連続した領域にない場合などはfrom toだけでは指定できません。そんな時下記のような記述をすると同一領域として定義されます。

define region RAM_region = mem:[from A to B] | mem:[from C to D];

同一の領域にまとめてしまえば各変数のサイズを考えてそれぞれの領域に配置する手間が省けます。


また定義済みの領域から一部抜き出して新しい領域を定義して元の領域からその部分を除外したい場合は下記のように記述することもできます。

define region RAM_region = mem:[from A to B] - mem:[from C to D];


FAQ作成対象製品:EWARM

参考資料URL