Forum: Compiler & IDEs Eclipse: System Environment Variablen


von Thomas F. (tf1973)


Lesenswert?

Hallo,

mich würde interessieren, ob es bei ARM-GCC unter Eclipse 
Systemvariablen/Konstanten gibt die man dem µC "mitgeben" kann. Die Idee 
dahinter ist, zum Beispiel Compiler Version, Datum, Uhrzeit… beim Build 
auszulesen und im µC verfügbar zu haben. Wäre zum Beispiel hilfreich, 
wenn man diese Werte über UART oder was auch immer auf Anfrage ausgeben 
kann (z.B. AT Command) und somit der Anwender eine Hilfe bei der 
Fehlersuche und ggf. Kontakt mit Support hat.
Danke schonmal!


Thomas

von Hafax (Gast)


Lesenswert?

Hallo,
ja die Möglichkeit gibt es. Es gibt predefiend macros die zur laufzeit 
des Preprozessors expandiert werden.
In der Dokumentation zu GCC in Kapitel "3.7.1 Standard Predefined 
Macros" sind diese beschrieben.

Für dich interesant wäre zum Beispiel
1
__DATE__
 oder
1
 __TIME__
 Aussehen könnte das ganze dann so:
1
const char* date;
2
const char* time;
3
4
date= __DATE__;
5
time= __TIME__;

Viele Grüße

Hafax

von Hafax (Gast)


Lesenswert?

Achja ich wollte noch den Link zur Documentation hinzufügen habs aber 
vergessen ;D Also hier ist er: 
"https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html";

von Hafax (Gast)


Lesenswert?

Sozusagen P.P.s:
Eclipse bietet auch eine möglichkeit. Unter "Project->Properties->C/C++ 
General->Paths and Symbols" im Reiter "Symbols" gibt es die Möglichkeit 
weitere Symbole hinzuzufügen und diese mit variablen Werten zu belegen.

von Markus F. (mfro)


Lesenswert?

Dein Compiler (genauer: dein Präprozessor) weiss eine ganze Menge über 
deine Laufzeitumgebung. Gib' mal auf der Kommandozeile "cpp -dM 
</dev/null" ein. Das gibt dir alle vordefinierten Makros.

Die Compilerversion lässt sich (mit gcc) dann z.B. so zusammenbasteln:
1
#define STRINGIFY_(x)   #x
2
#define STRINGIFY(x)    STRINGIFY_(x)
3
4
#define GNUC_VERSION    STRINGIFY(__GNUC__) "." STRINGIFY(__GNUC_MINOR__) STRINGIFY(__GNUC_PATCHLEVEL__)

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.