Forum: Mikrocontroller und Digitale Elektronik DebugWire mit Atmel Studio 7.0


von Werner M. (turboposty)


Angehängte Dateien:

Lesenswert?

Ich habe einen ATmega328P und ihn mit den AVR Dragon verbunden.
Wenn ich im Code nun einen Breakpoint setze wird dieser auch aktiv 
angezeigt. Allerdings wenn ich nun den Debugger starte wird der 
Breakpoint deaktiviert (s. Foto).

"The breakpoint will not currently be hit. Unable to set requested 
breakpoint on target. Note: The current selected device is unable to set 
breakpoints during runtime.”

Wie kann ich einen Breakpoint mit DebugWire aktivieren?

: Bearbeitet durch User
von nicht"Gast" (Gast)


Lesenswert?

Da gibt's hier im Wiki einen schönen Artikel zu. Such mal danach.

von Werner M. (turboposty)


Lesenswert?

Bezug nehmend über den Beitrag: 
https://www.mikrocontroller.net/articles/DebugWIRE

Wie kann ich Software-Breakpoints setzen bzw. BREAK-Befehle einfügen?
Welche Einstellungen sind notwendig, damit diese im Code übernommen 
werden?

: Bearbeitet durch User
von Werner M. (turboposty)


Lesenswert?

Damit DebugWire unter Atmel Studio 7.0 funktioniert, müssen folgende 
Einstellungen vorgenommen werden:
Toolchain/AVR-GNU Common/General => kein Haken bei Relax Branches 
(-mrelax)
Toolchain/AVR-GNU C Compiler/Debugging => bei ...flags -g eintragen
Toolchain/AVR-GNU C++ Compiler/Debugging => bei ...flags -g eintragen
Toolchain/AVR-GNU Linker/General => kein Haken bei Omit all symbol 
infomation (-WI,-s)

Die Breakpoints können ganz einfach mit F9 markiert/deaktiviert werden.
Anschließend kann der Debugger gestartet werden (Alt+F5).

Beim ersten Mal muss DebugWire aktiviert werden!
Anschließend z.B. den Dragon von der Hardware kurz entfernen, 
Spannungsversorgung von der Hardware kurz ein-/ausschalten und wieder 
verbinden.

Jetzt wird die Software mit Breakpoints geladen. Nach erfolgreicher 
Speicherung hält zunächst der Debugger am Anfang an und kann direkt mit 
F5 gestartet werden. Erreicht das Programm nun einen Breakpoint, so hält 
der Debugger entsprechend an.

Damit die Zielhardware z.B. Arduino wieder wie gewohnt programmiert 
werden kann, muss DebugWire wieder deaktiviert werden. Im aktiven 
Debug-Modus kann dann unter Debug/Disable deburgWIRE and Close 
ausgewählt werden.

Hinweis: Jeder Neustart des Debuggers bzw. ändern eines Breakpoints 
verursacht eine Neuprogrammierung des Flash-Speichers!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.