adviceLUNA / TRQer サポート

【異常動作】 resetコマンド時、PC値はリセットベクタにあるが、ターゲットのブートプログラムが実行されている

【原因】
下記2点の組み合わせにより発生します。
(1). ターゲットのリセットベクタブレークができない。
(2). microVIEW-PLUSメニュー[MPU] - [MPU固有設定] - [RESET]の初期化するレジスタとして"PC"のチェックボックスがONになっている。

resetコマンド時にリセットベクタブレークができないターゲットシステムでは、ICEの動作として、リセット解除後に強制ブレークを行なうことにより、ターゲットプログラムに介入します。
また、このとき、初期化するレジスタの設定としてPCを選択していると、ICEによりPC値がリセットベクタアドレスに初期化されます。

【対策】
(1). について
リセットベクタブレークが可能なターゲットシステムであれば、MPU固有設定「RESET」タブの「リセットベクタブレーク」設定、「リセットベクタアドレス」を正しく設定し、リセットベクタブレーク機能を有効にしてください。
リセットベクタブレークができないターゲットでは、resetコマンド時にICEによる介入までの間、ターゲットプログラムが実行されてしまう現象を回避することはできません。

(2).について
リセットベクタブレークが可能がターゲットシステムであれば、本設定は、ON/OFFどちらでもかまいません。
リセットベクタブレークができないターゲットでは、本設定をONにして、擬似的にターゲットリセットを実現します。
備考【補足説明】
リセットベクタブレークができないターゲットで、初期化するレジスタ(PC, CPSR, CP15)を設定している場合、resetコマンド後、正常にターゲットプログラムを実行できない場合があります。
これは、ターゲットが実行されたあとでICEが初期化するレジスタがPC, CPSR, CP15のみであるため、再実行時のプログラム状態と整合が取れなくなることがあるためです。
更新日:2014/09/19

 

アンケートにご協力お願いします

この解答はお客様のお役に立てましたでしょうか?

 

           

検索に戻る