Sida 1 av 1
Debugga i AVR-Studio med C (gcc) + Assembler?
Postat: 11 oktober 2008, 09:58:13
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)
Postat: 11 oktober 2008, 12:36:17
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.
Hittade under "Known Issues" i hjälpen för AVR S
Postat: 13 oktober 2008, 12:54:10
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."
Postat: 15 oktober 2008, 20:47:04
av SvenW
Så här står det i gcc-manualen:
-g Produce debugging information in the operating systems native format (stabs, COFF, XCOFF, or DWARF 2). GDB can work with this debugging information.
Så frågan är vad som är 'systems 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
Postat: 16 oktober 2008, 02:28:45
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?
Postat: 16 oktober 2008, 06:08:07
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å.

Postat: 16 oktober 2008, 08:49:30
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.
Postat: 16 oktober 2008, 08:55:11
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.

Postat: 16 oktober 2008, 09:14:29
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?
Postat: 16 oktober 2008, 09:29:44
av speakman
Jo "eliten" kör ju inte ens piltangenter, men riktigt dit har jag heller inte kommit.
PS: ursäkta urspårningen
