Ich habe die Platine „ PIC32 Bluetooth Audio Development Kit “ (DV320032) (mit integriertem PIC32MX470F512L ) über „ PICkit 3 In-Circuit Debugger “ (PG164130) mit einem PC verbunden . Nach einigem Experimentieren fand ich heraus, wie man 3 der 5 Benutzer-LEDs auf der Platine blinken lässt. Ich verwende die MPLAB XC32 C/C++ Toolchain, dh MPLAB X IDE v3.26 mit XC32 v1.40 . Ich habe ein neues C-Projekt mit der X-IDE erstellt, keine Optionen geändert, nur ein wenig Code in die main
drei LEDs hinzugefügt, um sie zu blinken.
Ich kann run project
. Das heißt, es erstellt die Anwendung, lädt sie in das Ziel und führt sie aus. LEDs blinken fröhlich.
Wenn ich dies jedoch debug project
nach erfolgreichem Erstellen und Programmieren tue, erhalte ich zuerst ein Popup mit der Meldung, dass " Watchdog Timer Enable = On " ist. Ich akzeptiere die Optionen zum Ändern der Einstellung. Es geht dann weiter und die nächste Meldung, die ich bekomme, ist:
Das Zielgerät ist nicht zum Debuggen bereit. Bitte überprüfen Sie Ihre Konfigurationsbiteinstellungen und programmieren Sie das Gerät, bevor Sie fortfahren. Die häufigsten Ursachen für diesen Fehler sind Oszillator- und/oder PGC/PGD-Einstellungen.
Ich suchte nach Hilfe und fand einige Leute, die vorschlugen, Debug zu deaktivieren, dh DEBUG = OFF
(einige Leute sagen, es macht keinen Unterschied), ich habe überprüft und diese Option ist bereits deaktiviert.
Meine Frage lautet also: „ Wie kann ich debug
das Projekt? “
Das (harmlose) Watchdog-Popup kann mit deaktiviert werden #pragma config FWDTEN = OFF
, das normalerweise zusammen mit anderen Konfigurationspragmas direkt vor der main
Funktion platziert wird.
Mein eigentliches Problem lag in der Tat bei den PGC/PGD-Einstellungen (wie in der Fehlermeldung angedeutet). Das habe ich zunächst übersehen, weil die Suche nach PGC und PGD keine Treffer ergab. Dann bemerkte ich im Schaltplan PGEC2 / PGED2 und fand ICS_PGx1 in der Konfiguration. Die Lösung stellte sich als trivial heraus:
#pragma config ICESEL = ICS_PGx2 // ICE/ICD Comm Channel Select (Communicate on PGEC2/PGED2)
Platziert im Code direkt vor dem main
.
rdtsc
Petr Vepřek
Petr Vepřek
rdtsc
Petr Vepřek