Renesas Synergy™

FAQ 1011129 : RL78/78K0Rコンパイラ(CA78K0R)のアセンブラで、次のWarning(警告)メッセージが表示されます。

Warning(警告)メッセージ

W4301: Can't initialize RAM area 'ffe20h - ffe27h'

回答

上記のWarning(警告)メッセージはRAM領域(この例ではFFE20H-FFE27Hの領域)に初期値を設定するような記述があることを示しています。

次の2つのケースが考えられます。

  1. RAMにプログラムまたはconst定数を意図的に配置している
  2. RAMにプログラムまたはconst定数を意図的に配置していない

それぞれについて説明します。

  1. RAMにプログラムやconst定数を配置する場合は、ROM化プロセッサを使用していただく必要があります。

    (詳細はこちらからユーザーズマニュアルを参照してください)

  2. DBやDW疑似命令を使用して、DSEG(データセグメント)に初期値を設定していないか確認してください。

    DBやDW疑似命令は、領域を確保して、そこに初期値を設定するときに使用します。
    DBやDW疑似命令でRAM領域を指定することはできません。

    もし、RAM領域に初期値を設定したい場合は、DSEG内にDS疑似命令を記述してRAM領域を確保し、 その後CSEG(コードセグメント)内にDBやDW疑似命令を使用して初期値を格納し、命令(例:MOVなど)を使用して値を設定してください。

    また、もし単にプログラム中で使用する定数を格納したいだけなら、 RAM領域でなくROM領域に設定します。その場合はDB/DW疑似命令をCSEG(コードセグメント)内に記述してください。

適用製品

CS+ (旧 CubeSuite+)
RL78, 78Kファミリ用Cコンパイラパッケージ
RL78ファミリ, 78K0R用コンパイラ [CA78K0R]
他にご質問がございましたら、リクエストを送信してください