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
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
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"
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.