Renesas Synergy™

FAQ 3000019 : エミュレータを接続してMPUに計算させた時のCRCと、リンカで計算したCRCが一致しません。

Q : 質問

エミュレータを接続してMPUに計算させた時のCRCと、リンカで計算したCRCが一致しません。  

本件の回答内容は次のリンカ、およびエミュレータ製品を対象とします。

※ リンカ:
RXファミリ用C/C++コンパイラパッケージまたはRL78ファミリ用Cコンパイラパッケージに付属の各最適化リンケージエディタ 

※ エミュレータ:
オンチップエミュレータE1,E20,E2エミュレータLite および インサーキットエミュレータIECUBE


A : 回答

フラッシュメモリ上の値は、エミュレータによって書き換えられる可能性があります。
エミュレータ接続状態ではCRC計算で変更後の値が参照されるため、リンカで計算した結果とはCRCが一致しない事があります。

以下のアドレスではエミュレータによる書き換えが行われます:
・デバイスのIDコード(RX, RL78)
・OFSレジスタ(RX)
・ソフトウェアブレークポイントが設定されたアドレス
このうち、デバイスのIDコードとOFSレジスタについては関連FAQ(FAQ 1010362)の解説をご参照ください。
ソフトウェアブレークポイントを設定したアドレスでは元のコードがBreak命令に置き換えられています。
CRCを計算する際はブレークポイントを解除するか、ハードウェアブレークポイントをお使いください。

適用製品

e² studio
CS+ (旧 CubeSuite+)
RL78ファミリ
RXファミリ
E1
E20
E2Lite
IECUBE

関連FAQ

FAQ 1010362:
RXファミリ用C/C++コンパイラの最適化リンケージエディタの機能により算出したCRC-CCITTの結果と、RXマイコンに搭載されたCRC演算器によるCRC-CCITTの結果が一致しません。

他にご質問がございましたら、リクエストを送信してください