Abfrage ob GCC oder AVR-GCC

Gast #2105621
Lesenswert?
• ▲
▼
Hallo,

ich will für ein Programm, dass einmal auf dem PC und einmal auf einem 
ATMega läuft bestimmte Teile im Quellcode gleich halten. Beim PC muss 
ich z.B. ein memcpy beim Atmega ein stattdessen memcpy_p benutzen.

Dafür würde ich beim compilieren gerne unterschen. Irgendwie so in der 
Richtung #ifdef avrgcc dann mach das.

Ich weiss, dass man die Version auf die Art abfragen kann. Ich würde 
aber gerne nur unterscheiden ist es der avr-gcc oder gcc.

Welche Möglichkeiten habe ich?

Die Suchfunktion hat leider nichts ergeben.

Danke für die Info.

Andreas
Gast #2105657
Lesenswert?
• ▲
▼
super danke an alle für die turbomäßig schnellen und guten Antworten.

@Patrick an sowas in der Richtung hatte ich auch schon gedacht. Zwar 
nicht F_CPU sondern irgendetwas was es nur beim avr-gcc gibt

@Jörg Das wird genommen. Auf sowas hatte ich gehofft.

@Guru mit Autotools kenne ich mich nicht aus. Werde ich mir aber mal 
ansehen.

Grüße
Andreas
#2105776
Lesenswert?
• ▲
▼
Andreas schrieb:
> Hallo,
>
> ich will für ein Programm, dass einmal auf dem PC und einmal auf einem
> ATMega läuft bestimmte Teile im Quellcode gleich halten. Beim PC muss
> ich z.B. ein memcpy beim Atmega ein stattdessen memcpy_p benutzen.
>
> Dafür würde ich beim compilieren gerne unterschen. Irgendwie so in der
> Richtung #ifdef avrgcc dann mach das.

Am besten machst DU sowas wie
1
#ifdef __AVR__
2
# define memcpy memcpy_p
3
#endif
statt vieler Fallunterscheidungen ueber den Code verstreut ...
Gast #2105887
Lesenswert?
• ▲
▼
Peter schrieb:
> Wohl besser umgekehrt, da Du vermutlich beim AVR-GCC memcpy sowie auch
> memcpy_p verwenden können willst.
>
> #ifndef AVR
> # define memcpy_p memcpy
> #endif

Habe ich gerade so gemacht.

Allerdings komme ich um einige Fallunterscheidungen nicht drumherum. Auf 
dem PC habe ich keinen direkten CAN-Controller auf dem AT90CAN schon. 
Aber werde dafür sorgen, dass es nicht unübersichtlich wird.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.