Projekt kann nicht mit „MPLAB X IDE“ auf „PIC32 Bluetooth Audio Development Kit“ mit „PICkit 3 In-Circuit Debugger“ debuggt werden

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 maindrei 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 projectnach 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 debugdas Projekt?

Möglicherweise müssen Sie den Watchdog-Timer ausschalten. Wenn es läuft, läuft es in Bruchteilen einer Sekunde ab, wodurch der PIC32 neu gestartet wird und das Debug abgebrochen wird. Das ist, was das Pop-up andeutet.
@rdtsc Danke. Das Popup sagt, dass der Watchdog für die gesamte Sitzung deaktiviert wird. Ich werde aber weiter experimentieren...
PS: Ich habe den Watchdog deaktiviert. Popup war weg. Ich erhalte immer noch die Meldung "nicht bereit zum Debuggen".
Verwendet irgendetwas die MCLR-, PGD- und/oder PGC-Leitungen, z. B. einen LED-Ausgang? Diese Pins sollten als "dediziert" zum Debuggen betrachtet und nicht für etwas anderes verwendet werden. Code oder externe Signale, die sie manipulieren, können stören. Dasselbe gilt für die Auswahl einer falschen Stromversorgungsmethode in den Debugger-Einstellungen, wie z. B. „Vdd des Geräts nicht mit Strom versorgen“ und das Ausschalten der Stromversorgung des Geräts. (Der Debugger hat die Fähigkeit, das Zielgerät mit Strom zu versorgen – mit Einschränkungen.) Achten Sie darauf, das Datenblatt griffbereit zu haben – eine gute Idee, es auszudrucken.
Ich habe das Problem gefunden und werde die Antwort später posten.

Antworten (1)

Das (harmlose) Watchdog-Popup kann mit deaktiviert werden #pragma config FWDTEN = OFF, das normalerweise zusammen mit anderen Konfigurationspragmas direkt vor der mainFunktion 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.

+1. Falsche Debug-Port-Einstellungen in Ihren Konfigurationsregistern bewirken genau das, was Sie bemerkt haben - Sie können das Teil problemlos programmieren, aber nicht debuggen.