Forum: Compiler & IDEs Unterscheidung verschiedener Controller im C-Code


von Thomas P. (pototschnig)


Lesenswert?

Hallo,

wenn im Makefile MCU=xxx und SUBMDL=xxx definiert wird, kann man im 
C/C++ Code eine Unterscheidung mit #if oder #ifdef treffen welcher Code 
compiliert werden soll?

Mfg
Thomas Pototschnig

von Thomas P. (pototschnig)


Lesenswert?

Habs mit -D $(SUBMDL) hingekriegt und dann ganz normal mit #ifdef.

Hätte es noch eine andere Lösung gegeben?

Mfg
Thomas Pototschnig

von Karl H. (kbuchegg)


Lesenswert?

Das ist die übliche Lösung.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Falls sich das -MMCU=... auf AVR-GCC bezieht, dieser generiert daraus
eigene Präprozessormakros für jeden Prozessortyp.  Die Namen stehen
im avr-libc-Manual (unter "Using the GNU Tool"), z. B. für einen
ATmega16 entsteht _AVR__ATmega16_.

von Rolf Magnus (Gast)


Lesenswert?

Ansonsten kann man bei gcc auch einfach mal an die Kommandozeile noch 
ein -E -dM anhängen und das -o mit dem Zieldateinamen weg. Dann wird 
eine Liste sämtlicher definierter Makros ausgegeben.

von Thomas P. (pototschnig)


Lesenswert?

Rolf Magnus wrote:
> Ansonsten kann man bei gcc auch einfach mal an die Kommandozeile noch
> ein -E -dM anhängen und das -o mit dem Zieldateinamen weg. Dann wird
> eine Liste sämtlicher definierter Makros ausgegeben.

Guter Tipp, danke!

Mfg
Thomas

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.