Renesas Synergy™

FAQ 1011061 : RL78/78K0RコンパイラCA78K0Rを使用していますが、すべてのROM領域を読み出すにはどのようにすればよいでしょうか?

回答

マイコンとして、ROMにミラー領域とミラー領域でない領域が混在するため、far属性でアクセスする必要があります。また、CコンパイラCA78K0Rでは、farポインタの加減算は下位2バイトのみ変化する仕様です。そのため、アクセスするアドレスはunsigned long型で定義し、farポインタへキャストしてアクセスしてください。

(例)
#define TOPADDR 0x00000
#define ENDADDR 0x20000
unsigned char sumdata;
void chksum(void)
{    
  unsigned long addr = TOPADDR;
  unsigned char sum = 0x00;
  do{  
    sum += *(__far const unsigned char *)addr;
    addr++;
  }while(addr !=ENDADDR);
  sumdata = sum;
}    

 

適用製品

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