Renesas Synergy™

FAQ 1008134 : プラグマ指令を記述しても、デバイス内部の周辺I/Oレジスタの読み書きで未定義エラーになるのですが?

回答

まず、記述したレジスタ名が正しいことを、デバイスのユーザーズ・マニュアルで確認してください。
正しい場合、次のことが考えられます。


周辺I/Oレジスタを読み書きするための“#pragma ioreg”の記述は、 レジスタを読み書きするファイルごとに必要です。
先に実行される関数のファイルに記述してあっても、ファイルが異なれば記述が必要となります。


エラーとなる例)

  (main.c)
  --------------------
  #pragma ioreg

  main()
  {
      int i;
      P0=1;
      ...
      func();
      ...
  }
  --------------------

  (func.c)
  --------------------
  void func(void)
  {
      P1=0;	/* func.cに#pragma ioregがないため未定義エラーとなる */
  }
  --------------------

上記の例の場合、func.cファイルの最初にも“#pragma ioreg”を記述してください。

 

 

適用製品

V850用コンパイラパッケージ [CA850]
他にご質問がございましたら、リクエストを送信してください