www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik [mega644] Platform zu Erstellungszeit erkennen


Autor: Oscar D. (oscard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich arbeite an einem AVR-Projekt, welches häuig auf verschiedene 
Debug-Platformen umgestellt werden muss. Das ist zum einen JTAGICE mkII 
und zum anderen der AVR Simulator.
Aufgrund der Simulation muss im Projekt ein Define genau dann auf 1 
gesetzt werden, wenn das ganze auf dem Simulator ausgeführt wird, und 
sonst auf 0.

Die Frage ist nun, ob es möglich ist, zur Compilezeit auf ein Define von 
AVR zuzugreifen, aus dem man auf die Platform schließen kann.

Ich stelle mir das etwa so vor:
#ifdef __AVR_PLATFORM_SIMULATOR
#define SIMULATION 1
#else
#define SIMULATION 0
#endif
Das "__AVR_PLATFORM_SIMULATOR" entspringt hier natürlich meiner 
Phantasie, aber könnte es sein, dass es eine Möglichkeit gibt auf 
soetwas zuzugreifen?

Ich habe schon google und die hiesige Suche gequält, aber gänzlich ohne 
Erfolg. Ich bin für jede Idee dankbar.

Grüße, Oscar

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

Bewertung
0 lesenswert
nicht lesenswert
Nein, so etwas gibt es nicht.  Der Compiler kann ja schließlich nicht
wissen, wofür du das Compilat am Ende einsetzen willst.

Du kannst natürlich zwei völlig verschiedene Build-Umgebungen
benutzen, vielleicht einmal im AVR Studio bauen und dort mit
entsprechenden -D-Optionen anzeigen, dass du jetzt für den Simulator
bauen willst.  Die Version für den AVR wird dann irgendwo anders
gebaut (externes Makefile, aber Vorsicht, dass es nicht durch AVR
Studio gebügelt wird).

Autor: Oscar D. (oscard)
Datum:

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

Ich wusste nicht, dass man die Compilerdirektiven, die das AVR-Studio 
dem Compiler übergibt beeinflussen kann. Aber das ist in meinem Fall 
auch nicht hilfreich, da es wirklich nur Code bestimmt werden darf.

Eigentlich  hatte ich gehofft, dass AVR-Studio von sich aus irgendwelche 
Direktiven übergibt.

Schade, aber gut, muss das Define eben weiter per Hand gesetzt werden.

Gruß, Oscar

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.