mikrocontroller.net

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


Autor: kai-uwe (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: kai-uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.