Forum: Compiler & IDEs Buildumgebung über Präprozessor abfragen möglich?


von Jörg E. (jackfritt)


Lesenswert?

Hallo,

ich habe 2 verschiedene Rechner mit unterschiedlichen seriellen 
Schnittstellen. Dazu muss ich jeweils eine Präprozessor Variable ändern 
damit die Debugausgabe darüber funktioniert(Daten müssen einmal 
invertiert bzw. nicht invertiert an die Serielle übergeben werden.)

Ich nutze hier Eclipse Luna mit dem avr-eclipse plugin unter Windows7.

Kennt Ihr eine Möglichkeit die verwendete Buildumgebung an den 
Präprozessor zu übergeben damit der entsprechende Code für mein µC 
erzeugt wird?

Oder steh ich auf dem Schlauch und es geht anders besser?

Schonmal Danke für Tips.

Gruss,

Jörg

von Rocco J. (rocky_j)


Lesenswert?

Hallo,

nutze die Option "-D" des Kompilers, zB. "-D PC1=1" auf den 1 PC und auf 
den anderen  "-D PC1=0". dann kanste im Programm mit #ifdef den Wert von 
PC1 abfragen. "-D" ist wie #define im Code.

mfg

rocky_j

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Also mit Compiler-Parameter wie "-D" definiert man ja z.B. "Debug" oder 
"normal". So war das sicher gemeint. Aber der Namensraum ist ja gross 
...

: Bearbeitet durch User
von Oliver (Gast)


Lesenswert?

Torsten C. schrieb:
> Also mit Compiler-Parameter wie "-D" definiert man

defines.

Oliver

von Jörg E. (jackfritt)


Lesenswert?

Prima das funktioniert. Allerdings habe ich noch nicht herausgefunden wo 
man das global hinzerlegen kann.
Bisher habe ich die Aufrufparameter nur Projektspezifisch hinterlegen 
können. Weiss jemand wo ich das bei eclipse umd dem avr-eclipse plugin 
einstellen könnte?

von Jörg E. (jackfritt)


Lesenswert?

Ok Global hinterlegen ging nicht. Aber man kann pro Projekt weitere 
Build Konfigurationen erstellen. Ich habe einfach eine mit nem -D switch 
dazugefügt. Und die wird halt manuell auf entsprechender Hardware 
händisch gesetzt. Nicht so schön aber geht wohl nicht anders.

von Eric B. (beric)


Lesenswert?

Jörg Esser schrieb:
> Ok Global hinterlegen ging nicht. Aber man kann pro Projekt weitere
> Build Konfigurationen erstellen. Ich habe einfach eine mit nem -D switch
> dazugefügt. Und die wird halt manuell auf entsprechender Hardware
> händisch gesetzt.

Ich würde in beiden Build-Konfigurationen ein
1
-D XYZ=blah
 setzen, mit entsprechenden Werten für die gebracuhte Schnittstelle. 
Danach nicht mit einem
1
#ifdef
 abfragen, sondern mit
1
#if XYZ == blah
.

>  Nicht so schön aber geht wohl nicht anders.

Was wäre dann schön? Das Eclipse per Gedankenlesen "das Richtige" macht?

von Tom (Gast)


Lesenswert?

Man kann im Makefile auch auf Umgebungsvariablen des Betriebssystems 
zugreifen und diese an den Präprozessor durchreichen (oder sie bei 
ausgeprägtem Masochismus direkt im Makefile abfragen/verarbeiten). Das 
hätte den Vorteil, dass Buildeinstellungen/Eclipse-Projekt mit in die 
Versionsverwaltung können und lokal nicht angepasst werden müssen. Wie 
man das in Eclipse unterbringt, habe ich auf die Schnelle nicht 
herausgefunden.

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.