Forum: Compiler & IDEs MCU Parameter aus Makefile als ASCII im Quellcode?


von Birger Z. (nohelp)


Lesenswert?

Wie schafft man es, den im Makefile durch den Paramter MCU angegeben 
Mikrocontroller (z.B. MCU = atmega128) im Quellcode als String zu 
verwenden, ohne eine lange Kette nach dem folgenden Schema zu erstellen.
1
#if defined (__AVR_ATmega128__)
2
char s[]= "atmega128"
3
#elif (__AVR_AT90CAN128__)
4
char s[]= "at90can128"
5
#endif

Ziel sollte es sein, egal welchen Mikrocontroller ich im Makefile 
angebe, ohne Anpassung im c-file einen entsprechenden String zu 
erhalten.

Am Ende möchte ich einen String wie den folgenden zusammensetzen:
"Compiliert am "__DATE__" um " __TIME__" mit Prozessor "__MCU__

Anders ausgedrückt, wie baut man _MCU_ ?

von holger (Gast)


Lesenswert?

Such mal nach stringize

von Birger Z. (nohelp)


Lesenswert?

Danke für den Hinweis. Hab mir daraus 2 #defines erstellt, die 
vielleicht auch andere interessieren.

im Makefile:
1
CDEFS += -DF_CPU=$(F_CPU) -DMCU=$(MCU)

im Programm:
1
#define STRINGIZE(s) #s
2
#define S(s) STRINGIZE(s)
3
#define __MCU__ S(MCU)
4
#define __FCPU__ S(F_CPU)
5
6
7
printf_P(PSTR("\r\nMikrocontroller "__MCU__" %u mal progr."), cnt);

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.