FAQ 105993 : M16Cファミリのレジスタのプロテクト解除

Q: 質問
M16CファミリのプロテクトレジスタのプロテクトビットPRC2を解除に設定しても、該当するレジスタのプロテクトが解除できません。
 


A: 回答 

ステップ実行を使用していたり、メモリウィンドウやI/OウィンドウによりPRC2を設定していませんでしょうか。

M16CファミリマイコンのプロテクトビットPRC2は、PRC2に"1"(解除)を書き込んだ後に任意の番地への書き込みが発生すると、プロテクトビット が"0"(設定)に戻る仕様です。

PRC2を操作する命令をステップ実行すると、ステップ実行後にE8/E8aファームウェアが動作します。E8/E8aファームウェア中には書き込み処理が含まれているため、マイコンの仕様によりプロテクトが再設定されてしまいます。

このため、PRC2を操作する命令はステップ実行せずに、以下のように実行してください。
 (例)

    :             <- prc2の設定よりも前からGO実行する。

    :

  prcr = 0x04;    // prc2の設定箇所

  pd9  = 0xFE;    // プロテクト解除該当レジスタ(pd9)の書き込み

    :

    :             <- pd9書き込みよりも後でブレークを設定する。


※ prc2の設定箇所でステップ実行すると、pd9への書き込みより前にE8ファームウェアによる任意番地への書き込みが発生するため、プロテクトが再度設定されます。

同様の理由により、メモリウィンドウやI/OウィンドウによりPRC2を設定しても、プロテクトは解除されません。

 

適用製品

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