Forum: Mikrocontroller und Digitale Elektronik AVR Studio - debuggen - Software Breakpoint


von Markus (Gast)


Lesenswert?

Hi zusammen!

Ich habe ein Problem mit dem AVR Studio und einem JTAG ICE (MK1) 
Nachbau.
Und zwar habe ich mir einen solchen Klon gekauft und bin gerade dabei 
ihn auszuprobieren, habe mir dafür auch eine Platine mit ATMEGA 16 drauf 
gelötet, funktioniert auch soweit, außer folgendes:

Wenn ich einen Software Breakpoint erstelle und dann das Debugging 
starte, dann kommt diese Fehlermeldung:

"Execution stopped while starting debugging

One or more breakpoints or tracepoints could not be set and have been 
disabled. The program has been stopped at the reset vector. Do you want 
to continue execution?"

Wie kann ich das Problem lösen, ich suche mir schon einen Wolf im 
Internet und in den Handbüchern von Atmel? Hatte das Problem vielleicht 
auch schon mal einer von euch?

Gruß

Markus

Meine Versionen:
AVR Studio: 4.16 sp1 Build 638
JTAG ICE Clon von www.gadgetpool.de (der über die serielle 
Schnittstelle)

von Gast (Gast)


Lesenswert?

In in den Projektoptionen bei AVRStudio muss die Codeoptimierung 
deaktiviert sein. Zusätzlich muss die Erzeugung von 
Debugging-Informationen aktiv sein.

von Markus (Gast)


Lesenswert?

Hi

Danke schonmal, aber welche Einstellung muss ich wählen, damit die 
Codeoptimierung deaktiviert ist?

also unter Projekt/configuration options/ general ist mir klar, aber 
welche option muss ich dann dort wählen bei Optimization? "-Os", "-OO", 
"-01", "-02" oder "-03"?

Und die andere Frage, wo kann ich die Debugging Informationen auf aktiv 
stellen, finde das nicht?

Gruß

Markus

von Maxxie (Gast)


Lesenswert?

-O0 -> Optimierungslevel 0
-g -> generate debugging information

von Markus (Gast)


Lesenswert?

Hi

Danke, das ist bei mir alles so, ich habe jetzt mal in den Debugging 
optionen in AVR STUDIO geguckt und unter Breakpoint gibt es auch so ein 
Häckchen, was man setzten kann, welches die Software Breapoints zulässt, 
jedoch ist das Kästchen leider grau.

Weiß da noch einer weiter?

Oder geht das vielleicht mir mit dem ATmega 16 oder mit meiner AVR 
Studio Version nicht?

Gruß

Markus

von Markus (Gast)


Lesenswert?

Hi

mein Compiler log sieht übrigens so aus:

Build started 19.7.2009 at 23:02:12
avr-gcc  -mmcu=atmega16 -Wall -gdwarf-2 -std=gnu99      -g 
-DF_CPU=1000UL -O0 -funsigned-char -funsigned-bitfields -fpack-struct 
-fshort-enums -MD -MP -MT Test.o -MF dep/Test.o.d  -c  ../Test.c
avr-gcc -mmcu=atmega16 -Wl,-Map=Test.map Test.o     -o Test.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature  Test.elf 
Test.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" 
--change-section-lma .eeprom=0 --no-change-warnings -O ihex Test.elf 
Test.eep || exit 0
avr-objdump -h -S Test.elf > Test.lss

AVR Memory Usage
----------------
Device: atmega16

Program:     260 bytes (1.6% Full)
(.text + .data + .bootloader)

Data:          2 bytes (0.2% Full)
(.data + .bss + .noinit)


Build succeeded with 0 Warnings...


Das müsste doch soweit richtig sein, aber wie gesagt, ich kann das 
Häckchen unter Debug/JTAG ICE Options/Breakpoint/"Enable use of software 
programm breakpoints nicht sezen.

Weiß da noch einer Rat, bzw. habe ich vielleicht bei den Compiler 
Einstellungen etwas falsches eingestellt?

Gruß

Markus

von Markus (Gast)


Lesenswert?

Und jetzt habe ich aus unerklärlichem Grunde noch ein Problem...ich kann 
auch gar keine Software Breakpoints mehr einfügen...

Mache ich etwas grundsätzliches falsch oder bin ich einfach zu doof 
dafür?

Ich hoffe ihr könnt mir helfen

Gruß

Markus

von tom (Gast)


Lesenswert?

Markus,

wenn ich mich recht erinnere, kannst Du mit dem JTAG-ICE MK1 nur die von 
der AVR OCD-Engine zur Verfügung stehenden 3 Breakpoints nutzen, also 
keine SW-Breakpoints. Einer davon wird schon für den single-step 
"verbraten", also zwei kannst Du dann noch frei nutzen.

Die Sache mit der Optimierung hat damit gar nix zu tun ;-). Ist nur, Du 
kannst natürlich auf wegoptimierte Code-Teile keinen BP setzen... Also 
nicht wundern, wenn das mal nicht geht, obwohl im source-view dort 
ausführbarer Code steht. Mal in mixed-View schalten, dann siehst Du den 
disassemblierten tatsächlichen Code zugehörig zum C-Code.

Good luck, tom.

von Markus (Gast)


Lesenswert?

Hi!

Ich habe das von dir angesproche mal nachgeguckt:

"Software Breakpoints
Note that software breakpoints are not supported in this release."

So heißt es in der Anleitung von original jtag ice.
Daher wird das wohl nicht gehen......

Gruß

Markus

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.