Forum: Compiler & IDEs C++ in VMLAB


von blue (Gast)


Lesenswert?

Hallo,

ich brauche nochmals eure Hilfe. Ich habe c++ Code, der für avrgcc 
geschrieben ist. Mit WINAVR keine Probleme. Jetzt wollte ich den Code 
auf Grund fehlender Hardware im Simulator VMLAB testen. Doch da 
kompiliert er mirs nicht und will unbedingt C Code. Der Code den ich 
weiter entwicken soll ist aber c++. Wisst ihr wie ich hier jetzt 
vorgehen muss um den Code doch noch zu simulieren?
Oder kennt jemand ein besseres kostenloses Simulationstool?

viele Grüße blue

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Sagt doch keiner, dass du den Code innerhalb von VMlab compilieren
musst, du kannst dem auch ein komplett externes Compilat unter-
schieben oder von dort aus mit einem eigenen Makefile compilieren.

Kann VMlab mittlerweile eigentlich ELF/DWARF-2?  Ich kenne das noch
als letzten "Konsumenten" von COFF-AVR, und in diesem Debugformat
lassen sich keinerlei C++-bezogene Debuginformationen unterbringen.

von blue (Gast)


Lesenswert?

Danke für die Antwort.

Nur jetzt ne ganz doofe Frage: Wie mach ich das?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

blue schrieb:
> Wie mach ich das?

Was, bitte?

von blue (Gast)


Lesenswert?

Na das ich compilierten code (.bin) in VMLAB lade? bzw. Wie bekomm ich 
aus meinem c++ code eine .coff ?

Danke für die Mühe

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

blue schrieb:
> Na das ich compilierten code (.bin) in VMLAB lade?

Das hat doch keiner behauptet.  .bin oder .hex sind Ladedateien,
die man aus der gelinkten Objektdatei (bei AVR-GCC typischerweise
auf .elf endend) ableitet.  Aber .elf enthält ja bereits die
kompletten Informationen und noch mehr, nämlich die Debuginformationen.

> bzw. Wie bekomm ich
> aus meinem c++ code eine .coff ?

Nun, da liegt der Hund im Pfeffer oder wie das heißt...  VMlab will
also immer noch AVR-COFF sehen.  Damit hast du keine große Chance,
deinen C++-Code sinnvoll zu debuggen.

Ansonsten: so, wie das VMlab mit seinem eigenen Makefile auch macht:
1
avr-objcopy -O coff-avr <inputfile.elf> <outputfile.coff>

Vermutlich könntest du mit einer Simulation im AVR Studio glücklicher
werden.

Der AVR-COFF-Konverter in avr-objcopy funktioniert nur (brauchbar)
mit stabs-Debuginformationen, mit DWARF-2 kann der nichts anfangen.
Du musst beim Compilieren daher explizit -gstabs angeben, nicht
einfach -g oder -gdwarf-2.

von blue (Gast)


Lesenswert?

Dankeschön für die schnelle und ausführliche Antwort, konnte es leider 
heute erst lesen.

Ich werds mal mit AVR-Studio probieren.

viele Grüße Blue

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.