Renesas Synergy™

FAQ 106918 : 周辺モジュールのIOレジスタの設定ができません。

Q: 質問

周辺モジュールのIOレジスタの設定ができません。具体的には以下のような問題が起こります。

  • 書き込みを行っても値が書き換わらない。
  • 書き込んだ値とは異なる値が読み込まれる。
  • 関連レジスタが全て同じ値になる。

原因と対策を教えてください。

 


A: 回答

原因として以下が考えられます。

  1. Write Only レジスタにライトしている場合
    Write Onlyのレジスタはリードする事ができません。この為ライトされた内容はレジスタに反映されますが、I/Oレジスタウィンドウやメモリウィンドウに表示されません。
    Write Only レジスタの内容を確認する方法としては、RAM上にダミーのWrite Only用ワークエリアを用意し、Write Only レジスタに書き込むと同時にダミーのワークエリアに書込むプログラムを追加すればワークエリアの内容を見る事により Write Only レジスタに書込んだ内容の確認ができます。

  2. モジュールストップ機能があるデバイスの場合
    モジュールストップ機能が動作している(ストップしている)周辺モジュールに対してはアクセスできません(リード/ライトできません)。
    そのためI/Oレジスタに書き込みを行っても値が変わらないという現象が起こります。

    デバイスのハードウェアマニュアルを参照の上、該当する周辺モジュールがモジュールストップ状態の場合はモジュールストップを解除してください。

  3. I/Oレジスタのアクセスサイズと異なるサイズでリード/ライトしている場合
    メモリウィンドウの表示単位をバイト表示にしてワード単位やロングワード単位のIOレジスタをリード/ライトしていないでしょうか。
    アクセスサイズと異なるアクセスサイズでIOレジスタをリード/ライトを行った場合正常にアクセスできない場合があります。
    このようなIOレジスタのためにエミュレータではIOレジスタウィンドウを用意していますので、IOレジスタウィンドウを使用してリード/ライトしてください。

 

適用製品

E200F
E6000
E6000H
E10A-USB
E10T-USB
E8a
E1 [R0E000010KCE00]
E20 [R0E000200KCT00]
他にご質問がございましたら、リクエストを送信してください