Forum: Compiler & IDEs Makefile ändern (Listing ausgeben)


von kai-uwe (Gast)


Angehängte Dateien:

Lesenswert?

Hallo allerseits!
Ich bastel gerade an einer kleinen "firmware" zur Ansteuerung eines 
TLC5940. Klappt auch schon alles ganz gut, bis auf ein paar 
Kinderkrankheiten. Leider ist es sehr schwierig, herauszubekommen wo es 
hängt. Auf dem Programmierrechner läuft Ubuntu, programmiert hab ich in 
C, kompiliert mit avr-gcc. Um zu sehen, was der Controller (mega8) 
eigentlich so treibt, wollte ich das Programm am PC simulieren. Da schon 
ein Bisschen Assembler-Erfahrung mit avr-studio (auf einem 
Windowsrechner) und dessen Debugger/Simulator vorhanden ist, wollte ich 
selbiges nutzen, um mein generiertes .hex zu simulieren. Leider ist das 
ganze nach dem disassemblen durch avr-studio nicht wirklich 
durchschaubar.

Nun zum eigentlichen Problem:
Hier im Forum und in den Tutorials habe ich schon oft von "Listings" 
gelesen, in denen der C-Code und die dazugehörigen Assemblerfetzen zu 
sehen sind. Sowas würde das Debuggen natürlich extrem vereinfachen. 
Leider habe ich ein solches Listing bei mir noch nicht gefunden :( Was 
muss ich also an meinem Makefile oder sonst irgendwo ändern, damit so 
ein Listing beim make-Aufruf (make program) gleich mit rausfällt? In der 
man-page habe ich die Option -S von avr-gcc gefunden, weis jetzt aber 
nicht, wo ich die ins Makefile einbauen muss. Optimal wäre natürlich 
auskommetierter C-Code in einer Assemblerdatei, die man dann gleich ohne 
disassemblen in Studio compilieren und simulieren kann.

Bin für jede Hilfe dankbar,
kai-uwe

von Stefan E. (sternst)


Lesenswert?

Das Makefile enthält bereits alles Nötige für ein solches Listing. Du 
musst nur die Zeile "build: elf hex eep" um "lss" ergänzen.

> Optimal wäre natürlich
> auskommetierter C-Code in einer Assemblerdatei, die man dann gleich ohne
> disassemblen in Studio compilieren und simulieren kann.

Das wird auch mit auskommentiertem C-Code nicht einfach so 
funktionieren. Aber wenn du auf ASM-Ebene simulieren willst, brauchst du 
doch gar nicht Assemblieren, sondern kannst einfach direkt das HEX-File 
laden.

von Stefan E. (sternst)


Lesenswert?

Ach übrigens:
Wenn du im Makefile die Zeile "DEBUG = stabs" änderst in "DEBUG = 
dwarf-2", dann kannst du einfach direkt das ELF-File ins AVR-Studio 
laden. Dann kannst du sogar auf C-Ebene simulieren.

von kai-uwe (Gast)


Lesenswert?

Vielen Dank!
Genau danach habe ich gesucht. Dass es so einfach ist... Die .elf ist 
natürlich noch ein Stück komfortabler beim Debuggen :D Habe bisher nicht 
mit Studio und C auseinandergesetzt, aber auf jeden Fall supi, dass es 
das auch kann. Jetzt steht der entspannten Ungezieferjagdt nichts mehr 
im Wege.

Grüße,
Kai-Uwe

von Oliver (Gast)


Lesenswert?

Ein neues Projekt im Studio anlegen und deinen C-Quellcode dort zu 
kompilieren dauert mit nur einem Sourcefile etwa 30 Sekunden, ist also 
deutlich kürzer als das Schreiben eines Beitrags hier im Forum. Danach 
klappt es auch mit dem Studio-Debugger.

Oliver

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.