Hallo, ich versuch gerade nachzuvollziehen, was das AVR32 Studio beim build macht. Einige Option hab ich im GCC Manual nicht gefunden: Unter AVR32/GNU C Linker ist standardmäßig u.a. folgende option angeführt: -Wl, --direct-data Was tut diese Option? Sie korrespondiert offenbar mit einer anklickbaren Option "Allows direct references to the data section". Kann es sein, dass das mit vorcompilierten Library aufrufen zu tun hat? Ich kämpfe zur Zeit mit dem Problem beim Debuggen, das bestimmte Funktionsaufrufe von Beispielprojekten in den Sourcen garnicht findbar sind. Ich würde gerne allen Quellcode von den benutzten und vermutlich erst vom Linker evtl als vorcompilierte Dateien eingebundenen Librarys fürs Debugen vorhanden haben. Dazu müsste ich die Standardlibs alle raushauen mit -nostdlib, -nodefaultlibs, -nostartfiles etc, und dann stattdessen die Source-Dateien explizit angeben oder? Wie sagt man dann dem Linker/Compiler, das er auf vorcompiliertes Zeug verzichten soll? Ferner hat evtl -static = "No shared libraries" etwas damit zutun. Was ist eine shared library?
Moritz E. wrote: > Einige Option hab ich im GCC Manual nicht gefunden: > Unter AVR32/GNU C Linker ist standardmäßig u.a. folgende option > angeführt: > > -Wl, --direct-data -Wl leitet die Option nur an den Linker weiter. Dokumentiert ist --direct-data also nicht in gcc, sondern in binutils, zB ld oder avr32-ld.
Achso, danke.. Und der unterschied zwischen static und shared?
Moritz E. wrote: > Was > ist eine shared library? Gugeln sollte dir da sicher helfen. Kurz: eine Bibliothek, die vorgelinkt ist und die zur Laufzeit in den VM-Adressraum der Applikation reingemappt wird (mit mmap()). Die Idee dahinter (daher shared library) ist, dass mehrere Applikationen den Code gleichzeitig nutzen können. Wenn du von Windows kommst, kennst du sowas als DLL.
Naja.. static benutzt statische Libraries, shared eben stattdessen
shared libs.
> Was ist eine shared library?
Eine, die erst beim Programmstart dynamisch ans Programm gelinkt wird.
Dann handelt es sich bei den standardlibs wohl um static libraries... und -static würde keinen untersched machen zu "--direct-data" habe ich beim ld manual nichts gefunden, mit avr32-ld --help erfahre ich auch nicht mehr als "Allow direct data references when optimizing". Was ist unter "direct data reference" zu verstehen?
Google +avr32 +"direct-data", Link #2: http://www.atmel.com/dyn/resources/prod_documents/doc32074.pdf
ok ich hab google nur mit +"--direct-data" gefüttert, und dann aufgegeben...
Zum fehlendem Code beim Debuggen: Das habe ich mit gnuarm und Eclipse auch, wenn Funktionen aus der Newlib verwendet werden. Ich habe mir dadurch geholfen, in dem ich den entsprechenden Quellcode aus den Source-Paketen hinzufügte.
Das Newlib zeug hab ich bisher nur als objektfiles gefunden, wo hast du denn da sourcecode aufgetrieben?
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.