C++ in VMLAB

Gast #1816640
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
Moderator Persönliche Seite #1816659
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.
Moderator Persönliche Seite #1816753
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren