Eclipse: System Environment Variablen

#4510545
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
Gast #4510668
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
Gast #4510722
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.
#4511248
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__)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren