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

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

FAQ詳細情報

ID 10810312
FAQカテゴリ(大) コンパイラ
最終更新日 2010-06-05

質問内容

EW430で __ramfuncが使用できるようになったと聞きました

回答内容

RAM上で動く関数の実装は以前のバージョンより可能でしたが、コピー部分は自分で書く必要がありました。新しいバージョンでは、__ramfuncキーワードを関数に付加すると、main関数が開始する前に自動的にRAMで動く関数が作成され、使用できるようになります。

[RAM上で動く関数のコーディング例 ]

__ramfunc int func(int x)
{
  return x + 3;
}

リンカコマンドファイルは以下のように記述します。

(1) __ramfuncのセグメント名は下記のようになりますので、

本体(RAM) : CODE_I
元データ : CODE_ID

それぞれ、メモリー上のどこかに配置します。
Z(DATA)CODE_I=0200-09FF
Z(CODE)CODE_ID=1100-FFDF

(2) 両方のセグメントがコピーであることを宣言します。

QCODE_I=CODE_ID

参考資料URL