mikrocontroller.net

Forum: Compiler & IDEs C++ in VMLAB


Autor: blue (Gast)
Datum:

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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

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

Autor: blue (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort.

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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
blue schrieb:
> Wie mach ich das?

Was, bitte?

Autor: blue (Gast)
Datum:

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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

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

Autor: blue (Gast)
Datum:

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

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.