MAEC TOOL NEWS:
MAECT-PD32R-010516D
M32Rファミリ用エミュレータデバッガPD32Rの使用上の注意事項を連絡します。
- 該当製品
PD32R V.1.00 Release 1 ~ V.2.00 Release 2
- 内容
ターゲットプログラムの実行が、実行前PCブレークポイントで中断された場合、BPCレジスタの値が不正となる場合があります。
なお、本現象はエミュレータを使用したデバッグ時のみ発生します。
- 2.1 発生条件
- 以下に示す条件すべてを満たす場合に発生します。
- (1) ターゲットMCUが、次に示すいずれかのグループまたはシリーズに属する場合。
- 32120グループ
- 32121グループ
- 32102グループ
- M32R/Iシリーズ
- (2) ターゲットプログラムの実行が、RTE命令に設定された実行前PCブレークポイントで中断された場合。
- 2.2 発生例
- 次の手順で下記のターゲットプログラム例を実行した場合、BPCレジスタの値が[誤]に示すように不正な値となります。この場合に、RTE命令を実行すると不正な番地に分岐し、プログラムが正しく動作しません (RTE命令は、BPCレジスタで示される番地へ分岐します)。
- (1) 100A番地のRTE命令に実行前PCブレークポイントを設定する。
- (2) BPCレジスタの値をH'3000に設定する。
- (3) 1000番地からターゲットプログラムを実行する。
- (4) 100A番地の実行前PCブレークポイントでターゲットMCUの実行が中断される。
[ターゲットプログラム例]
---------------------------------------
ADDRESS CODE
1000 NOP
1002 NOP
1004 LD24 R1,#H'002000
1008 MVTC R1,BPC
100A RTE ← 実行前PCブレークポイントを設定
---------------------------------------
[正]BPCレジスタの値:H'2000
[誤]BPCレジスタの値:H'3000
- 回避策
RTE命令には、実行前PCブレークポイント以外を設定してください。