AVR-libc

Problemy dotyczące programowania.

Moderatorzy: Moderatorzy, Administratorzy

slomek
Użytkownik
Posty: 36
Rejestracja: 2006-03-04, 10:46
Lokalizacja: Wrocław
Kontakt:

AVR-libc

Post autor: slomek »

Zainstalowałem sobie zestaw: avr-libc-1.4.5+ binutils-2.17.50.0.4+gcc-3.4.6.
W czasie kompilacji używam parametru

Kod: Zaznacz cały

-I/usr/local/avr/include/
, gdyż bez niego avr-gcc nie widzi np pliku io.h. Jedynzmianą, jaką wykonałem było dodanie do zmiennej PATH ścieżki do avr-gcc. W czsie kompilacji mam błąd:

Kod: Zaznacz cały

/usr/local/avr/lib/gcc/avr/3.4.6/../../../../avr/bin/ld: crtm16.o: No such file: No such file or directory
Skończyły mi się pomysły :???:
Błagam o pomoc! :help:
Ostatnio zmieniony 2006-11-06, 22:05 przez slomek, łącznie zmieniany 1 raz.

Awatar użytkownika
difrost
Moderator
Posty: 2802
Rejestracja: 2006-03-11, 12:31
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: difrost »

Sparawdz czy w istnieje /usr/local/avr/bin/ld
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso

slomek
Użytkownik
Posty: 36
Rejestracja: 2006-03-04, 10:46
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: slomek »

Kod: Zaznacz cały

slomek@frytka:~$ ls /usr/local/avr/bin/ld -l
-rwxr-xr-x 1 root root 2482496 2006-11-02 13:31 /usr/local/avr/bin/ld*

Awatar użytkownika
difrost
Moderator
Posty: 2802
Rejestracja: 2006-03-11, 12:31
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: difrost »

A sprawdz czy reczne linkowanie pomoze, tj. skompiluj do objecta (-c) i pozniej pojedz to linkerem recznie.
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso

slomek
Użytkownik
Posty: 36
Rejestracja: 2006-03-04, 10:46
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: slomek »

Wrzucam część Makefile'a:

Kod: Zaznacz cały

MCU=atmega16
CC=avr-gcc
OBJCOPY=avr-objcopy
# optimize for size:
CFLAGS=-I/usr/local/avr/include/ -g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues

all: test.hex
test.hex : test.out 
	$(OBJCOPY) -R .eeprom -O ihex test.out test.hex 
test.out : test.o 
	$(CC) $(CFLAGS) -o test.out -Wl,-Map,test.map test.o 
test.o : test.c 
	$(CC) $(CFLAGS) -Os -c test.c
Jeśli dobrze rozumiem, to o czym mówisz jest spełnione...
Zastanawiam się, czy jakieś operacji z ldconfig nie trzeba wykonać po zainstalowaniu biblioteki...

Awatar użytkownika
difrost
Moderator
Posty: 2802
Rejestracja: 2006-03-11, 12:31
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: difrost »

Jesli brakowaloby biblioteki, to by sie linker wywalil z okomunikatem, ze nie moze jej znalezc. Tutaj wyglada to tak jaby nie mogl znalezc ld. Chcialem abys zrobil ld recznie, zeby zobaczyc, czy czasem nie zadziala gdy podame sciezke absolutna.
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso

slomek
Użytkownik
Posty: 36
Rejestracja: 2006-03-04, 10:46
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: slomek »

A mógłbym prosić o sposób wywołania ld w tej sytuacji? Nigdy tego nie używałem a strona man wieje grozą ;-)
Mam to wywołać na pliku test.o?

Awatar użytkownika
difrost
Moderator
Posty: 2802
Rejestracja: 2006-03-11, 12:31
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: difrost »

slomek pisze:A mógłbym prosić o sposób wywołania ld w tej sytuacji? Nigdy tego nie używałem a strona man wieje grozą ;-)
Mam to wywołać na pliku test.o?
Tak, jesli nie uzywasz ekstra bibliotek i nie sptripujesz, to wystarczy bezposrednie wykonanie ld na *.o.
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso

slomek
Użytkownik
Posty: 36
Rejestracja: 2006-03-04, 10:46
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: slomek »

Kod: Zaznacz cały

slomek@frytka:~/AVRtest/pwm/test$ ld test.o
ld: test.o: Relocations in generic ELF (EM: 83)
test.o: could not read symbols: File in wrong format
?
A przy okazji: jak zrobić, żeby kompilator automagicznie znał lokalizację plików *.h, tak żeby opcja -I/usr/local/avr/include była zbędna?
Ostatnio zmieniony 2006-11-07, 08:38 przez slomek, łącznie zmieniany 1 raz.

Awatar użytkownika
difrost
Moderator
Posty: 2802
Rejestracja: 2006-03-11, 12:31
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: difrost »

slomek pisze:

Kod: Zaznacz cały

slomek@frytka:~/AVRtest/pwm/test$ ld test.o
ld: test.o: Relocations in generic ELF (EM: 83)
test.o: could not read symbols: File in wrong format
?
A przy okazji: jak zrobić, żeby kompilator automagicznie znał lokalizację plików *.h, tak żeby opcja -I/usr/local/avr/include była zbędna?
Uzywasz nie tego linkera co trzeba. Podaj cala sciezke, tj.:

Kod: Zaznacz cały

/usr/local/avr/bin/ld test.o
Co do drugiego pytania -> man cpp i sekcja ENVIRONMENT.
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso

slomek
Użytkownik
Posty: 36
Rejestracja: 2006-03-04, 10:46
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: slomek »

Racja ;-)

Kod: Zaznacz cały

slomek@frytka:~/AVRtest/pwm/test$ /usr/local/avr/bin/ld test.o
test.o: In function `main':
/home/slomek/AVRtest/pwm/test/test.c:7: undefined reference to `__stack'
/home/slomek/AVRtest/pwm/test/test.c:7: undefined reference to `__stack'
/home/slomek/AVRtest/pwm/test/test.c:37: undefined reference to `exit'
Może coś przy kompilacji biblioteki dałem ciała...?
Ostatnio zmieniony 2006-11-07, 08:48 przez slomek, łącznie zmieniany 2 razy.

Awatar użytkownika
difrost
Moderator
Posty: 2802
Rejestracja: 2006-03-11, 12:31
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: difrost »

Hmmm...sprawdz to tak:

Kod: Zaznacz cały

/usr/local/avr/bin/gcc -c test.c
/usr/local/avr/bin/gcc -o test test.o
EDIT -> A to widziales?
Ostatnio zmieniony 2006-11-07, 08:59 przez difrost, łącznie zmieniany 1 raz.
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso

slomek
Użytkownik
Posty: 36
Rejestracja: 2006-03-04, 10:46
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: slomek »

Kod: Zaznacz cały

slomek@frytka:~/AVRtest/pwm/test$ /usr/local/avr/bin/gcc -c test.c -mmcu=atmega16
slomek@frytka:~/AVRtest/pwm/test$ /usr/local/avr/bin/gcc -o test test.o
/usr/local/avr/lib/gcc/avr/3.4.6/../../../../avr/bin/ld: crts8515.o: No such file: No such file or directory
:/

Awatar użytkownika
difrost
Moderator
Posty: 2802
Rejestracja: 2006-03-11, 12:31
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: difrost »

Czyli jednak nie moze po prostu znalezc tzw. prekompilowanego start objecta. W normalnym gcc plik ten nazywa sie crtn.o i znajduje sie w /usr/lib (Debian). Postaraj sie go zlokalizowac recznie:

Kod: Zaznacz cały

find /usr/local -name crts8515.o -print
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso

slomek
Użytkownik
Posty: 36
Rejestracja: 2006-03-04, 10:46
Lokalizacja: Wrocław
Kontakt:

Re: AVR-libc

Post autor: slomek »

Ruszyło :-)
Przekompilowałem bibliotekę wg podanego przez Ciebie linka- zmieniając oczywiście katalog docelowy. Wcześniej próbowałem kompilować wg artykułu, bodajże 351 z tej stronki, ale z avr-libc był problem (tam jest ./doinst.sh a nowsze wersje korzystają z ./configure...) i Skompilowałem ją wg wzorca proponowanego przez skrypty konfiguracyjne.
Wielkie dzięki!! :ok:

ODPOWIEDZ