[mega644] Platform zu Erstellungszeit erkennen

OP #975507
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:
1
#ifdef __AVR_PLATFORM_SIMULATOR
2
#define SIMULATION 1
3
#else
4
#define SIMULATION 0
5
#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
Moderator Persönliche Seite #975522
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).
OP #975554
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

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.