RAMチェックの方法について

RAMチェックの方法について教えてください。

CPUはRX66Tを使用しています。

過去の例を元にRAMチェックを実装しようとしています。

https://community-ja.renesas.com/cafe_rene/forums-groups/mcu-mpu/rl78/f/forum18/5217/ram

スタートアップルーチンの中に _INITSCT というRAMの初期化を行う関数があるので、

この関数の前にRAMチェックを行おうと考えています。

方法としては0xAA、0x55の書き込みと読み出しを行い、値が一致することです。

この時、一致しなければエラーを外部変数に記録し、メイン関数の開始後、RAMエラーが発生していると

LEDに表示させようと考えてました。

実際は _INITSCT でRAMが初期化されて、エラー検出の外部変数も0になってしまい、上手くいきません。

初期化が終わった後にRAMチェックでエラーが起こっていたのを知るにはどのようにすればよいでしょうか。

Parents
  • わわいです

    こういう場合、セクション名を指定してその外部変数を定義します

    そして、そのセクションのアドレスを初期化するエリアから外れるように決め打ちで指定するようにします

    #たとえば、RAMの終端位置、とかスタックエリアの直前の位置とか

    メモリチェックのコードからはそのアドレスで結果を書き込むことになります

    #ましかし、メモリエラーが起きたときのこと、を考えるとその後のコード実行が信用できなくなるのをどうするのかって問題がありますが。

Reply
  • わわいです

    こういう場合、セクション名を指定してその外部変数を定義します

    そして、そのセクションのアドレスを初期化するエリアから外れるように決め打ちで指定するようにします

    #たとえば、RAMの終端位置、とかスタックエリアの直前の位置とか

    メモリチェックのコードからはそのアドレスで結果を書き込むことになります

    #ましかし、メモリエラーが起きたときのこと、を考えるとその後のコード実行が信用できなくなるのをどうするのかって問題がありますが。

Children
No Data