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
Axel Gartner wrote:
> Warum baut die hier gerne verwendete Makefileform ...
Was ist denn die "hier gerne verwendete Makefileform" genau?
Makefile aus dem Tutorial, oder wo kommt das her?
Stefan Ernst wrote: > Axel Gartner wrote: >> Warum baut die hier gerne verwendete Makefileform ... > > Was ist denn die "hier gerne verwendete Makefileform" genau? > Makefile aus dem Tutorial, oder wo kommt das her? Ich formuliere meine Frage um: Warum wird in Makefiles häufig -mmcu=atmega16 UND -D__atmega16__ verwendet?
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.
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.
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
Bezüglich deiner einleitenden Frage: ja, es ist OK, für den MCU- abhängigen Teil auf __AVR_${mcutype}__ zu testen. Dieser Makro stellt ein dokumentiertes Interface dar.
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.