Warum -mmcu=atmega16 und -D__atmega16__

OP Persönliche Seite #1144790
Lesenswert?

Warum baut die hier gerne verwendete Makefileform den Prozessor zweimal 
in den gcc Aufruf ein? Die -mmcu Option würde doch reichen? Sie erzeugt 
doch ein _AVR_ATmega16_ das man für #idefs verwenden kann.

avr-gcc -mmcu=atmega16 -I. -gstabs -DF_CPU=14745600UL -D__atmega16__ 
-Os -Wall -Wstrict-prototypes -std=gnu99   anaus.o   --output anaus.elf 
-lm

Ich übersehe etwas, aber was?

Axel
#1144874
Lesenswert?

Axel Gartner wrote:

> Warum wird in Makefiles häufig -mmcu=atmega16 UND -D__atmega16__
> verwendet?

Und wieder muss ich nachfragen:
Wie kommst du überhaupt auf dieses "häufig"?

Das Beispiel-Makefile im Tutorial enthält das nicht, das vom AVR-Studio 
generierte Makefile enthält das nicht, und das von Jörgs MFile 
generierte Makefile enthält das auch nicht. Damit dürften wohl min 3/4 
der hier verwendeten Makefiles abgedeckt sein.
OP Persönliche Seite #1144891
Lesenswert?

Jörg Wunsch wrote:
> Axel Gartner wrote:
>
>> Warum wird in Makefiles häufig -mmcu=atmega16 UND -D__atmega16__
>> verwendet?
>
> Es wird gar nicht ,,häufig'' dort verwendet, und streng genommen ist
> es illegal: das Benutzen von Bezeichnern, die mit zwei Unterstrichen
> beginnen, ist dem Nutzer nicht gestattet.

Danke, dann entsorge ich das aus dem nichthäufigen Makefile.

Axel

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