Chapter 8. よく寄せられる質問 (FAQ)
8.3 不具合に関する FAQ
• PC
が省電力/
休止モードになった後、デバッガが動作しなくなりました。どう したのでしょうか。デバッガを
(
特にデバッガとして)
長時間使う場合、お使いのPC
のオペレーティン グ システムの電源オプション設定画面で休止モードを無効にしておいてください。Windows XP
の場合、[
電源オプションのプロパティ]
ダイアログボックスの[
休止 状態]
タブで[
休止状態を有効にする]
のチェックを外します。こうすると、全てのUSB
サブシステムコンポーネントで全通信を維持できます。•
周辺モジュールに[Freeze on Halt]
を設定していないのに突然フリーズしてしま います。なぜでしょうか。dsPIC30F/33F
とPIC24F/H
の場合、デバッガは周辺制御レジスタの予約ビット(
通常はbit 14
または5)
をFreeze
ビットとして使用します。レジスタ全体に書き 込みを実行した時に、このビットが上書きされた可能性があります(
このビット はデバッグモードではユーザアクセス可能です)
。この問題を防ぐには、レジスタ全体を書き換える命令
(MOV)
ではなく、アプリケー ションで変更が必要なビットだけを書き換える命令(BTS
、BTC)
を使用します。• 16
ビットデバイスを使用中に、予期しないリセットが発生しました。どのよう にして原因を調べれば良いでしょうか。以下の点を確認してください。
- RCON
レジスタを確認してリセット要因を調べる。-
割り込みサービスルーチン(ISR)
でトラップ/
割り込みを処理する。例えば、下記のよう なtrap.cコードを挿入する。void __attribute__((__interrupt__)) _OscillatorFail(void);
:
void __attribute__((__interrupt__)) _AltOscillatorFail(void);
:
void __attribute__((__interrupt__)) _OscillatorFail(void) {
INTCON1bits.OSCFAIL = 0; //Clear the trap flag while (1);
}
:
void __attribute__((__interrupt__)) _AltOscillatorFail(void) {
INTCON1bits.OSCFAIL = 0;
while (1);
}
:
- アサートを使用する。
よく寄せられる質問 (FAQ)
•
コードのデバッグが完了しました。デバイスをプログラムしましたが、動作しま せん。何が原因でしょうか。以下の点を確認してください。
-
デバッガをプログラマとして選択してヘッダボードへの書き込みを行いませんでしたか。ヘッダボードに搭載されているのは
-ICE/-ICD
バージョンのデバイスで、実際のデバイス とは動作が異なる事があります。デバッガをプログラマとして使って書き込めるのは、通 常のデバイスのみです。通常のデバイスにもICE/ICD
回路を内蔵したデバイスがありま すが、ヘッダボードに搭載されている特殊な-ICE/-ICD
デバイスとは別のものです。- PICkit 3
をデバッガとして選択したままデバイスにプログラミングを行いませんでしたか。PICkit 3をデバッガとして選択してプログラミングを行うと、デバッガ実行プログラ ムがプログラムメモリに書き込まれ、デバッグ用のその他のデバイス機能がセットアップ
されます
(2.6.1
「デバッグ開始までの操作手順」を参照)。完成した (
リリース用)
コードをプログラムする場合、PICkit 3をプログラマに設定する必要があります。
- [Build Configuration]
ドロップダウン リストまたは[Project]
メニューで「Release」を選 択しましたか。完成した(
リリース用)
コードを書き込むには、この操作が必要です。プロジェクトを再ビルドしてデバイスにもう一度書き込みを行い、コードが動作するかど うか試してみてください。
•
このFAQ
に記載されていない問題が発生しました。どうすれば良いでしょうか。以下のセクションを参照してください。
- 2.8
「デバッガが使うリソース」- 9.2
「特定の状況で表示されるエラーメッセージ」- 9.3
「一般的な対処方法」NOTES:
PICkit™ 3 ユーザガイド
ドキュメント内
PICkit 3 Programmer/Debugger Userユs Guide
(ページ 46-49)