Debugga i AVR-Studio med C (gcc) + Assembler?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
manw
Inlägg: 207
Blev medlem: 16 november 2005, 11:16:17
Ort: Södermalm

Debugga i AVR-Studio med C (gcc) + Assembler?

Inlägg av manw »

Har precis börjat pula så smått med AVR Studio 4, och kopplat in gcc från WinAVR-paketet. Är väldigt nöjd med den miljön, och speciellt simulatorn/debuggern.

Satt i fredags och till slut (tror jag) så fick jag till anrop av en assemblerrutin, i separat fil, från huvudprogrammet i C. Det hela byggde utan protest i alla fall. Men programmet verkar inte hoppa in i ASM-rutinen.

-Min fråga är, är det någon som kan svara på om debuggern/simulatorn stödjer både C och ASM samtidigt, eller om jag skall förmoda att jag ännu gjort fel? (Har inte provat det på "målsystemet" ännu, ATtiny2313)
SvenW
Inlägg: 1156
Blev medlem: 24 april 2007, 16:23:10
Ort: Göteborg

Inlägg av SvenW »

Med gcc, gdb, emacs och simulavr går det lika bra att debugga/simulera i c som i assembler. Den hoppar automatiskt in i rätt källkodsfil om man t.ex. stegar programmet. Brytpunkter kan sättas i c-filer och assemblerfiler 'samtidigt'.
Hur det är i AVR Studio 4 känner jag inte till.
Troligen går det där också. Annars är det dåligt.

PS. kontrollera att debuggerflaggorna är på för gcc. '-g' för c-kompilering och kanske också '-gstabs' för assemblering, om avr-gcc används som assembler.
Användarvisningsbild
manw
Inlägg: 207
Blev medlem: 16 november 2005, 11:16:17
Ort: Södermalm

Hittade under "Known Issues" i hjälpen för AVR S

Inlägg av manw »

Hittade denna not i hjälpen för gcc-plugin i AVR-Studio, trisst, annars så började jag gilla AVR-Studio.

"Debugging projects with Assembly and C sourcefiles is not working.

The GNU assembler is not capable of outputting dwarf2 debug information.

This seems to confuse the elf/dwarf parser when stepping over or into assembly routines from C."
SvenW
Inlägg: 1156
Blev medlem: 24 april 2007, 16:23:10
Ort: Göteborg

Inlägg av SvenW »

Så här står det i gcc-manualen:
-g Produce debugging information in the operating system’s native format (stabs, COFF, XCOFF, or DWARF 2). GDB can work with this debugging information.

Så frågan är vad som är 'system’s nativeformat' på din maskin.

Jag kör Linux, och det är som sagt inga problem att debugga c-kod och assember-kod samtidigt.
Givetvis rekommenderar jag Linux. Ubuntu t.ex. är mycket enkel att installera, liksom avr-gcc ,gdb, emacs och alla övriga program som behövs. Just AVR-Studio finns nog inte, tyvärr.

http://ubuntuforums.org/showthread.php?t=433427

För mig är Emacs det skälvklara miljön,
men inte så lätt i början, dessvärre.



Mina kopileringsflaggor är, som exempel:

c-kod:

avr-gcc -I. -I/usr/local/avr/include -g -mmcu=atmega48 -O2 -fpack-struct -fshort-enums -funsigned-bitfields -funsigned-char -Wall -Wstrict-prototypes -Wa,-ahlms=aa.lst -c aa.c -o aa.o


assembler-kod:

avr-gcc -I. -I/usr/local/avr/include -mmcu=atmega48 -x assembler-with-cpp -Wa,-gstabs,-ahlms=lowlevel.lst -c lowlevel.S -o lowlevel.o


länkning:

avr-gcc -Wl,-Map,aa.out.map -mmcu=atmega48 -lm -L/usr/local/avr/lib/avr4/ -o aa.out aa.o lowlevel.o
bearing
Inlägg: 11677
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Inlägg av bearing »

Går det att debugga i Emacs grafiska miljö eller måste det ske textbaserat? hur styrs i så fall debuggern från Emacs?
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

Emacs wrappar gdb, och den i sin tur styrs via korta kommandon via sitt CLI. Emacs pekar på aktuell källkod samtidigt, i övrigt lär inget skilja (jag kör bara emacs-nox) och jag gissar att de flesta föredrar det så. :)
SvenW
Inlägg: 1156
Blev medlem: 24 april 2007, 16:23:10
Ort: Göteborg

Inlägg av SvenW »

Jag kör Emacs22(X11). (Emacs22(GTK) har varit lite problematisk, om än snyggare.)

Med Emacs22(X11) kan man använda musen för att t.ex. sätta brytpunkter. Jag har också konfigurerat så att jag kör 'tags' med musen på ett avancerat sätt och kan då klicka mig fram i kod, headers, manualsidor m.m. ungefär som när man surfar med webbläsare.

Annars är Emacs 'tangentackord' oftast mer effektiva än musen, och då går det lika bra med Emacs-nox.
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

Okej, det verkar gå bra grafiskt också (fast vem blir förvånad, det är ju emacs :) ). Själv har jag besvär med att behöva lyfta bort högerhanden från tangentbordet så jag fortsätter hacka GDB CLI ett tag till. :D
SvenW
Inlägg: 1156
Blev medlem: 24 april 2007, 16:23:10
Ort: Göteborg

Inlägg av SvenW »

Jag tror att de allra skickligaste fortfarande kör helt utan mus. Själv har jag inte nått riktikt det stadiet, utan skämt bort mig och kommer nog aldrig dit. Undrar hur Richard Stallman gör?
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

Jo "eliten" kör ju inte ens piltangenter, men riktigt dit har jag heller inte kommit. :D

PS: ursäkta urspårningen :)
Skriv svar