Troubleshooting

No device found on target

Gelegentlich kann es bei Fehlprogrammierung der GPIOs zu folgender, auch durch Reset oder Ein-Ausschalten des Kits nicht zu behebender Fehlermeldung kommen:

Error

No device found on target.

../_images/Fehlermeldung_Debugger.PNG

Reboot des PC, Neuinstallation von Treibern oder IDE ist in diesem Fall zwecklos. Dieses Verhalten zeigt sich gelegentlich, wenn Code heruntergeladen wurde, welcher GPIOs oder andere Peripheriekomponenten so umprogrammiert, dass die Debugschnittstelle (Welche auch über GPIOs läuft) nicht mehr funktioniert. Da der zuletzt heruntergeladene Code jedes mal bei Reset oder Stromeinschalten wieder ausgeführt wird, kann der Debugger nicht mehr mit dem Kit Verbindung aufnehmen.

Mögliche Loesung:

  • Vor dem Starten des Debuggers die rote Resettaste auf dem Kit drücken und gedrückt halten. (So wird die Ausführung des Schadhaften Codes verhindert)

  • Debugger starten, sobald der Debugger erfolgreich Kontakt mit dem Kit aufgenommen hat die Reset-Taste wieder loslassen.

Wenn die Reset-Taste zulange gedrückt wird, bekommt man eine Fehlermeldung, dass das Target im Dauerreset sei. Wird die Taste zuwenig lange gedrückt, kommt die bereits oben erwähnte Fehlermeldung.

Alternativ kann das Flash mittels der ST-Link Utility gelöscht werden.

ST-LINK Utility
  • Carme-Kit speisen und via USB-Debugschnittstelle verbinden

  • ST-Link Utility starten

  • Auf Connect (1) klicken

  • Erfolgreiche Verbindung wird in (2) angezeigt

  • Auf Chip Erase (3) klicken

  • Nun sollte das Kit wieder ansprechbar sein

../_images/ST-LinkUtility_EraseFlash.png

Interrupt wird nicht zurückgesetzt

Das Aussschalten der Interruptanforderung darf nicht die letzte Instruktion einer Interruptroutine sein. Ist das Löschen es Interruptflags im Statusregister die letzte Instruktion, wird sie gleich wieder aufgerufen.

Dies weil das Löschen des Flags aufgrund der Pipeline und anderen Latenzzeiten länger dauert als das Beenden der Interruptroutine. Somit sieht der Prozessor nach Beendiung der Interruptroutine immer noch eine Interruptanforderung und verzweigt gleich wieder in die Interruptroutine.

Das Problem kann behoben werden, wenn in der Interruptroutine als erstes das Flag gelöscht und anschliessend die eigentliche Arbeit ausgeführt wird.

Legal Information