Hallo! Ich glaub mittlerweile ich bin zu doof zum Komplieren des Codes. Ich hab mir gestern den avr-gcc und die binutils und die avr-libc und so fertig gemacht und wollt heut ma testen ein kleines beispiel von http://www.linuxfocus.org/common/src/article231/haraleit.pdf zu kompilieren. Ich hab schon viele C-Programme für Linux auf Intel-Basis kompiliert. Aber noch nie hatte ich so keine Ahnung was ich hier tue. Ich hab in den Foren schon gelesen das man -T Parameter verwenden soll um das "undefined reference to __stack"-Problem zu lösen. Aber dann bekomm ich nur noch einige mehr dazu. Jetzt beklagt der avr-gcc sich über eine "undefined referece to __data_copy" Hier mal die Ausgaben: #> avr-gcc -g -mmcu=at90s4433 -o ledtest.elf ledtest.o ledtest.o(.text+0x1e): In function `main': /root/avr/projects/ledtest/ledtest.c:29: undefined reference to `__stack' ledtest.o(.text+0x20):/root/avr/projects/ledtest/ledtest.c:29: undefined reference to `__stack' Den -T hab ich so verwandt: #> avr-gcc -T/usr/local/atmel/avr/lib/ldscripts/avr4433.x -g -mmcu=at90s4433 -o ledtest.elf ledtest.o /usr/local/atmel/lib/gcc-lib/avr/3.3/libgcc.a(_copy_data.o)(.init4+0x0): In function `__do_copy_data': : undefined reference to `__data_end' /usr/local/atmel/lib/gcc-lib/avr/3.3/libgcc.a(_copy_data.o)(.init4+0x6): In function `__do_copy_data': : undefined reference to `__data_load_start' /usr/local/atmel/lib/gcc-lib/avr/3.3/libgcc.a(_copy_data.o)(.init4+0x8): In function `__do_copy_data': : undefined reference to `__data_load_start' /usr/local/atmel/lib/gcc-lib/avr/3.3/libgcc.a(_copy_data.o)(.init4+0x12) : In function `.do_copy_data_start': : undefined reference to `__data_end' Was mach ich falsch?? Ich versuch seit 5 Stunden dieses Miniprogramm kompilieren zu lassen und krieg's nich hin. genervt Ich hoffe jemand hier hat Lust mir zu helfen. Ich da ein kompletter Newbie was die Microcontroller-Programmierung angeht.
Sorry die URL zum Beispiel ist flasch. So ist's richtig: http://www.linuxfocus.org/Deutsch/March2002/article231.shtml
Deine Versionen scheinen allesamt nicht zusammenzupassen. Was genau benutzt Du denn? Welches Betriebssystem?
Ich nutze als Betriebsystem SuSE Linux 8.1 auf dem Rechner. Kompiliert habe ich die Tools mit gcc 3.2 auf einem AMD-k6 mit Kernel 2.4.20. Der GCC-Source mit dem ich den AVR-GCC gebaut hab hat Version 3.3. Die AVR-LibC ist 20020203. Die Binutils sind 2.14. UISP hat Version 20020626. Ich hab mittlerweile auchmal WinAVR getestet und da klappt alles. Das muss doch auch unter Linux gehn... ;)
D. h. Du hast zwar einen avr-gcc 3.3, aber avr-libc 2002*? Dann ist der Compiler OK, aber die avr-libc (viel) zu alt. http://savannah.nongnu.org/download/avr-libc/snapshots/
Ok. Ich hab mir jetzt alles neu besorgt in den aktuellen Versionen. Die avr-libc hab ich aus deren CVS. Den GCC hab ich mir nochmal komplett geholt. Vorher hatte ich nur gcc-core. Und UISP werd ich mir gleich auch die aktuelleste besorgen. Die binutils sind ja die neusten. Ich lasse gerad den gcc kompilieren. Naja dauert noch ein bisschen. Der is nich so ein Rennsemmel. Nur 300MHz. Ich meld mich bei Erfolg oder wenn es weitere Probleme gibt nochmal. Danke Joerg!
Nabend. Ich hab gerad nochma ein wenig was rumprobiert und mir wie Joerg angemahnt hat neue Sources besorgt und alles Kompiliert. Ging auch nich auf Anhieb aber ich hab's nun endlich hinbekommen. Endlich funktioniert das Kompilieren! ;-) Nochmal Danke Joerg. Ich glaub ich hätts noch lange mit den alten Versionen versucht wenn du mir nicht auf die Sprünge geholfen hättest. Bis denn. ( Ich werd glaubich noch mehr Probleme haben :) )
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.