CRC演算設定時の期待値出力先の指定【RL78/G14 (R5F104JE)使用】

まず、下記簡単な経緯になります。

CS+ for CA, CX (V4.04.00)にて、安全機能のひとつのCRCを実装したく調査・実験を繰り返しておりました。

CRC計算には、ルネサス様から提供されているセルフテストライブラリ(Ver1.30)を使用しております。

https://www.renesas.com/jp/ja/software/D6003884.html )

 

その中で、CRC演算を下図のように設定しているのですが、肝心の期待値をうまく参照することができずエラーとなりました。

期待値は【アドレス0x0FFFCに2byte】で、【コンパイル/HEX生成時に計算・格納される】という認識でしたが、

ダミーデータを付加して数十パターンほど試しましたが、当該アドレスの値はポインタ参照しても'0x0000'のままでした。

例:アドレス0x0FFFCの2byteを参照したいとき、【 *(unsigned short *)0x0FFFC 】として参照しています。

 

これまでにもCRC演算設定に関してはご質問されている方がいたため、自身で検索・対応できる範囲は参考にしてきました。(オンチップデバッグ無効など)

ここ数日はコードデータそのものを漁っていたのですが、ふとアドレス0x0FE20に、ライブラリ処理より算出されるCRC計算値と同じ値があることを見つけました。

(こちらも数十パターンで確認済みです。)

 

 

さて、前置きが長くなりましたが、下記3点について何卒ご教示ください。

① アドレス0x0FE20の値は、想定している期待値で間違いないのか?もしくは別モノか?

② アドレスのポインタ参照時に、そもそも勘違い/誤りがないか?(オフセットのようなものが働く?)

③ CS+設定時およびライブラリ利用時に、気を付けて設定すべき項目はあるか?

上記以外でも、懸念される項目等ありましたら併せてご教示いただけますと幸いです。

 

以上、よろしくお願い致します。

Parents
  • Saladbarさん、こんにちは。NoMaYと申します。

    > 例:アドレス0x0FFFCの2byteを参照したいとき、【 *(unsigned short *)0x0FFFC 】として参照しています。
    farポインタとして参照しないといけないのではないでしょうか。

  • Saladbarさん、こんにちは。NoMaYです。

    もう一点あるかもと思います。オブジェクトコンバーターで生成しますので、デバッグ時にlmfファイルをダウンロードしても、そのアドレスに存在しないと思います。(オブジェクトコンバーターは(ROM化プロセッサ実行後の)lmfファイルを読み込んでHEXファイルを出力するものだからです。)

  • >NoMaY様
    ご助言いただきありがとうございます。
     ① __far領域指定を試してみます。
     ② 今回はコンパイル直後のHEXファイルの中身を見ていたのですが、
      LMFファイル情報との関連性も疑われるでしょうか?(特にダウンロード等はしていない認識です)
  • Saladbarさん、こんにちは。NoMaYです。

    > (特にダウンロード等はしていない認識です)

    今回の件では、デバッガは使用していない、ということでよいですか?RFP等で書き込んでいるということでよいすか?アドレス0x0FFFCの2byteの値の確認などは、printf等で外部に出力するなどしているということでよいですか?デバッガを使用していれば、HEXファイルではなくLMFファイルをダウンロードするのですが、アドレス0x0FFFCの2byteの値の確認にデバッガを使っていないことが分からなかったので、あのように書いたのです。

    以前に以下のスレッドがありましたが、LMFファイルにCRC値が入っていないのはCA78K0Rの落とし穴ですので、あのように書いたのです。

    オブジェクトコンバーターによるCRC演算の結果出力機能について
    japan.renesasrulz.com/cafe_rene/f/forum18/5841/crc

    [追記]

    最初の投稿の以下の部分で、デバッガではダウンロードしていなかった、ということになりますね。すみません、今、把握しました。

    > これまでにもCRC演算設定に関してはご質問されている方がいたため、自身で検索・対応できる範囲は参考にしてきました。(オンチップデバッグ無効など)

Reply
  • Saladbarさん、こんにちは。NoMaYです。

    > (特にダウンロード等はしていない認識です)

    今回の件では、デバッガは使用していない、ということでよいですか?RFP等で書き込んでいるということでよいすか?アドレス0x0FFFCの2byteの値の確認などは、printf等で外部に出力するなどしているということでよいですか?デバッガを使用していれば、HEXファイルではなくLMFファイルをダウンロードするのですが、アドレス0x0FFFCの2byteの値の確認にデバッガを使っていないことが分からなかったので、あのように書いたのです。

    以前に以下のスレッドがありましたが、LMFファイルにCRC値が入っていないのはCA78K0Rの落とし穴ですので、あのように書いたのです。

    オブジェクトコンバーターによるCRC演算の結果出力機能について
    japan.renesasrulz.com/cafe_rene/f/forum18/5841/crc

    [追記]

    最初の投稿の以下の部分で、デバッガではダウンロードしていなかった、ということになりますね。すみません、今、把握しました。

    > これまでにもCRC演算設定に関してはご質問されている方がいたため、自身で検索・対応できる範囲は参考にしてきました。(オンチップデバッグ無効など)

Children
No Data