Gast
#624920
Hallo! Ich bekomme unter Eclipse die Meldung "region text is full", wenn ich das PN aus WinAVR nehme gehts aber...
|
Anzeige
|
WinAVR+Eclipse->region text is full
Gast
#624920
Hallo! Ich bekomme unter Eclipse die Meldung "region text is full", wenn ich das PN aus WinAVR nehme gehts aber... -mmcu= fehlt beim Linken. Ich dachte, diesen Bug hätte da endlich mal jemand repariert?
Gast
#625382
-mmcu ist da. Ich poste mal wie unterschiedlich die einzelnen .c-Files kompiliert und gelinkt werden. Kompilerausgabe aus "PN"+"MFile"+"WinAVR":
Kompilerausgabe aus "Eclipse3.3"+"CDT4"+"avr-eclipse"+"WinAVR":
Linkerausgabe aus "PN"+"MFile"+"WinAVR":
Linkerausgabe aus "Eclipse3.3"+"CDT4"+"avr-eclipse"+"WinAVR":
Nein, ich nenne meine einzelnen Files nicht x und y- meine Namen sind noch bekloppter und deshalb nicht vorzeigbar ;)
Gast
#625386
hallo,
hat vielleicht gar nicts damit zu tun, aber:
>avr-gcc -Wall -g -O2 -Os -c -mmcu=atmega88 -DF_CPU=16000000 -o"y1.obj" "../y1.c"
was bewirkt die zweimalige angabe der optimierung .. grübel
bye kosmo
Gast
#625400
Ja, über die bin ich auch gestolpert, aber das kann ich in Eclipse nicht verhindern, da ist -Os eine checkbox, also zuschaltbar zu den "normalen" Optimierungseinstellungen.
Gast
#625404
Gerade nochmal nachgeschaut: "If you use multiple ‘-O’ options, with or without level numbers, the last such option is the one that is effective." Also sollte das -Os von Eclipse das -O2 "überstimmen", weil es an letzter Stelle steht. Was mir noch auffällt ist, dass dein Eclipse kein -lm linkt.
Gast
#625432
Bingo. Das war es. Warum wird der Code beim Hinzufügen der libm.a kleiner? > Warum wird der Code beim Hinzufügen der libm.a kleiner?
Weil (leider) die libgcc.a manchen Code doppelt, der stattdessen
handoptimiert in der libm.a abgelegt worden ist. Historischer
Ballast. Der handoptimierte Code sollte besser in die libgcc.a
kommen, aber das war historisch rein als Folge der GCC-Lizenzpolitik
(du musst der FSF dein Copyright abtreten -- auch wenn das nach
deutschem Recht, glaub' ich, null und nichtig ist :) praktisch nicht
möglich.
Mit der von Дмитрий Хмельков (Dmitry Xmelkov) neu geschriebenen
libm, die in avr-libc ab Version 1.6 vorhanden sein wird, sehe ich
aber gute Chancen, dass man diesen historischen Fehler reparieren
kann.
Gast
#625482
Na, zum Glück werden dann ja "von Hand gelinkte" libraries bevorzugt. Das -lm hätten die "avr-eclipse" Leute ja dann eigentlich auch als Standard setzen können. Ok, ich bedanke mich für die tolle Hilfe hier- da kommt man doch gerne öfters mal vorbei ;)! Heiko wrote: > Das -lm hätten die "avr-eclipse" Leute ja dann eigentlich auch als > Standard setzen können. Ja, sag ihnen das mal. Das ist auf jeden Fall sinnvoll. > Weil (leider) die libgcc.a manchen Code doppelt, der stattdessen > handoptimiert in der libm.a abgelegt worden ist. Wo findet man diese Geheimnisse dokumentiert? > Wo findet man diese Geheimnisse dokumentiert?
``All documentation files usually end up in ".c".''
(Unbekannter Autor)
oder "asm" ? Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|