Witam!
Mam pewien problem. Chciałbym sobie w końcu zaprogramować jakiś mikrokontroler, ale nie wiem w jaki sposób zainstalować poprawnie aplikacje do kompilacji kodów źródłowych pod systemem Linux Mandrake 9.0
W sieci natknąłem sie na strone " http://www.linuxfocus.org/English/March ... e231.shtml ". Jest tam opisane (jak już się pewnie zorientowaliście) programowanie AVRów przy uzyciu podanych tam narzędzi.
----[]----
Proszę nie zrażać się długością mojego posta, bo w większości są tu umieszczone komunikaty "wyżucone" przez system.
----[]----
Ja robiłem tak:
ąciągłem tam podane narzędzia, czyli:
* binutils-2.14.tar.gz (nowsza wersja niź tam podana)
* gcc-core-3.0.4.tar.gz (również nowsza wersja)
* avr-libc-20020203.tar.gz (i tu także nowsze)
* uisp-20020626.tar.gz (no jeszcze tu nowsze wydanie).
Robie identycznie jak jest tam opisany (wpisuje po koleji wszystko wyraz po wyrazie z tych tekstów na niebieskich tłach), więc to wygląda po koleii tak:
$ su (loguje sie jako root)
# mkdir /usr/local/atmel (pięknie tworzy sie folder "atmel")
# tar -zxvf binutils-2.14.tar.gz (bez błędnie się rozpakowuje)
# cd binutils-2.14 (bez problemu wchodzi do katalogu)
# ./configure --target=avr --prefix=/usr/local/atmel
creating cache ./config.cache
checking host system type... i686-pc-linux-gnu
checking target system type... avr-unknown-none
*** This configuration is not supported in the following subdirectories:
target-liberty
(Any other directories should still work fine.)
checking for i686-pc-linux-gnu-ar... no
checking for ar... ar
checking for i686-pc-linux-gnu-as... no
checking for as... as
checking for i686-pc-linux-gnu-dlltool... no
checking for dlltool... dlltool
checking for i686-pc-linux-gnu-ld... no
checking for ld... ld
checking for i686-pc-linux-gnu-nm... no
checking for nm... nm
checking for i686-pc-linux-gnu-ranlib... no
checking for ranlib... ranlib
checking for i686-pc-linux-gnu-windres... no
checking for windres... windres
checking for i686-pc-linux-gnu-objcopy... no
checking for objcopy... objcopy
checking for i686-pc-linux-gnu-objdump... no
checking for objdump... objdump
checking for avr-ar... no
checking for avr-as... no
checking for avr-dlltool... no
checking for avr-ld... no
checking for avr-nm... no
checking for avr-ranlib... no
checking for avr-windress... no
checking whether to enable maintainer-specific portions of Makefiles... no
updating cache ./config.cache
creating ./config.status
creating Makefile
-------------------
# make
-------------------
checking [...]
creating [...]
updating [...]
finding [...]
make[1] [...]
/include [...]
-> (i jeszcze pelno (tysiace slow przewija sie przez ekran konsoli))
-> (wszystko sie konczy i w kosoli nie pisze, że wystąpiły jakieś błędy, zy errory, czyli chyba jeszcze ta "procedura przebiegła dobrze)
------------------
# make install
------------------
mkdir[1] [...]
make[1] [...]
installing [...]
make[2] [...]
-> (no i jeszcze "kilka tysięcy" słów przewijających się przez ekran konsoli)
-> (i tu także nie występują żadne błędy, ani problemy [tak mi się zdaje])
---------------------------------------------------------------------------
------ W tym miejscu kończy się moja praca z pakietem binutils-2.14 -------
------ jeszcze w tym "podrozdziale" na stronie jest napisane zdanie: ------
------ OTO ONO: ------
Add the line /usr/local/atmel/lib to the file /etc/ld.so.conf and run the command /sbin/ldconfig to rebuild the linker cache.
------ KONIEC ZDANIA -----
------ nie wiem co ono oznacza, bo nie znam angielskiego ----
------------------------------------------------------------------------
------ teraz przechodzę do podtematu "Software installation: AVR gcc" -----
-------------------------------------------------------------------------
# tar -zxvf gcc-core-3.0.4.tar.gz
-> (wszystko niby dobrze sie rozpakowuje, ale pod koniec pisze coś takiego:):
tar: Przeskakuję do następnego nagłówka
tar: Archiwum zawiera przestarzałe nagłówki base64
gzip: stdin: invalid compressed data---format violated
tar: Proces potomny zwrócił stan 1
tar: Zakończenie z błędem z powodu uprzednich błędów
-> (w folderze "gcc-3.0.4" rozpakowały się pliki)
# cd gcc-3.0.4
# ./configure --target=avr prefix=/usr/local/atmel --disable-nls --enable-language=c
-> (i tu wysypują się problemy!!)
Configuring for a i686-pc-linux-gnu host.
Created "Makefile" in /home/[użytkownik]/gcc-3.0.4
grep: /home/[użytkownik]/gcc-3.0.4/libstdc++-v3/configure.in: No such file or directory
./config.status is unchanged
Configuring gcc...
No configuration information in gcc
-> (jeszcze sprawdziłem swoją wersję gcc, to mam: gcc version 3.2)
-> (zapewne już na tym powinienem skończyć, bo już wysypują mi się błędy, ale ja robie dalej i opisze to jeszcze)
# make (po napisaniu tego chwile coś się robi, ale nic nie wyświetla w konsoli)
# make install
-> (tutaj coś takiego się wyświetliło):
/bin/sh ./mkinstalldirs /usr/local/atmel /usr/local/atmel
----------------------------------------------------------------
------ no i na tym kończy się podtemat ten z pakietem ----------
--------------------- gcc-core-3.0.4.tar.gz --------------------
----------------------------------------------------------------
---------------------------------------------------------------
----- a teraz dalej, podtemat: --------------------------------
------- Software installation: The AVR C-library --------------
---------------------------------------------------------------
# tar -zxvf avr-libc-20020202.tar.gz (bez zarzutu się rozpakowuje)
# cd tar-libc-20020203
# export CC=avr-gcc
# export AS=avr-as
# export AR=avr-ar
# export RANLIB=avr-ranlib
# export PATH=/usr/local/atmel/bin:${PATH}
# ./configure --prefix=/usr/local/atmel --target=avr --enable-languages=c --host=avr
loading cache ./config.cache
---------------------- (oto co się pokazuje):
checking host system type... avr-unknown-none
checking target system type... avr-unknown-none
checking build system type... avr-unknown-none
checking for a BSD compatible install... (cached) /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... (cached) yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking for as... (cached) avr-as
checking for ar... (cached) avr-ar
checking for ranlib... (cached) avr-ranlib
checking for gcc... (cached) avr-gcc
checking for a BSD compatible install... /usr/bin/install -c
creating ./config.status
creating libc/Makefile
creating libc/stdlib/Makefile
creating libc/pmstring/Makefile
creating libc/string/Makefile
creating libc/misc/Makefile
creating libc/bsd/Makefile
creating libc/gnu/Makefile
creating libm/Makefile
creating libm/fplib/Makefile
creating Makefile
Adding multilib support to Makefile in .
with_multisubdir=
---------------
# make
---------------
true "AR_FLAGS=rc" "CC_FOR_BUILD=" "CFLAGS=" "CFLAGS_FOR_BUILD=" "CFLAGS_FOR_TARGET=" "LDFLAGS=" "LIBCFLAGS=" "LIBCFLAGS_FOR_TARGET=" "MAKE=make" "MAKEINFO=makeinfo " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "EXPECT=" "RUNTEST=" "RUNTESTFLAGS=" "exec_prefix=/usr/local/atmel" "infodir=/usr/local/atmel/info" "libdir=/usr/local/atmel/lib" "prefix=/usr/local/atmel" "tooldir=/usr/local/atmel/avr" "AR=avr-ar" "AS=avr-as" "CC=avr-gcc" "LD=ld" "NM=" "PICFLAG=" "RANLIB=avr-ranlib" "DESTDIR=" DO=all multi-do
Making all in libc
make[1]: Wchodzę katalog `/home/[użytkownik]/avr-libc-20020203/libc'
Making all in stdlib
make[2]: Wchodzę katalog `/home/[użytkownik]/avr-libc-20020203/libc/stdlib'
avr-gcc -DPACKAGE=\"avr-libc\" -DVERSION=\"20020203\" -I. -I. -I../../include -I../../common -g -Wall -W -Wstrict-prototypes -mmcu=avr2 -mcall-prologues -Os -c abs.c -o abs.o
make[2]: avr-gcc: Polecenie nie znalezione
make[2]: *** [abs.o] Błąd 127
make[2]: Opuszczam katalog `/home/[użytkownik]/avr-libc-20020203/libc/stdlib'
make[1]: *** [all-recursive] Błąd 1
make[1]: Opuszczam katalog `/home/[użytkownik]/avr-libc-20020203/libc'
make: *** [all-recursive] Błąd 1
---------------------
# make install
---------------------
Making install in libc
make[1]: Wchodzę katalog `/home/[użytkownik]/avr-libc-20020203/libc'
Making install in stdlib
make[2]: Wchodzę katalog `/home/[użytkownik]/avr-libc-20020203/libc/stdlib'
avr-gcc -DPACKAGE=\"avr-libc\" -DVERSION=\"20020203\" -I. -I. -I../../include -I../../common -g -Wall -W -Wstrict-prototypes -mmcu=avr2 -mcall-prologues -Os -c abs.c -o abs.o
make[2]: avr-gcc: Polecenie nie znalezione
make[2]: *** [abs.o] Błąd 127
make[2]: Opuszczam katalog `/home/[użytkownik]/avr-libc-20020203/libc/stdlib'
make[1]: *** [install-recursive] Błąd 1
make[1]: Opuszczam katalog `/home/[użytkownik]/avr-libc-20020203/libc'
make: *** [install-recursive] Błąd 1
----------------------------------------------------------------------------
--------- no i same błędy zapewne z powodu nie zainstalowania --------------
--------- wcześniejszego pakietu gcc-core ----------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
------ mimo klęski idę dalej (choć wiem, że już się nic nie da zrobić ------
------- piszę to jedynie aby osoba, która zechce mi pomóc znała CAŁĄ -------
------ zaistaniałą problematykę !!! ----------------------------------------
------- teraz czas na pakiet kolejny "uisp-20020626.tar.gz" ----------------
----------------------------------------------------------------------------
# tar -zxvf uisp-20020626.tar.gz (wszystko ładnie się rozpakowuje)
# cd uisp-20020626
# ./configure (tej komendy nie było podanej na stronie)
creating cache ./config.cache
checking for a BSD compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking for gcc... gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for c++... no
checking for g++... g++
checking whether the C++ compiler (g++ ) works... yes
checking whether the C++ compiler (g++ ) is a cross-compiler... no
checking whether we are using GNU C++... yes
checking whether g++ accepts -g... yes
checking for a BSD compatible install... /usr/bin/install -c
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for fcntl.h... yes
checking for sys/ioctl.h... yes
checking for sys/time.h... yes
checking for unistd.h... yes
checking for working const... yes
checking for size_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether gcc needs -traditional... no
checking for 8-bit clean memcmp... yes
checking for vprintf... yes
checking for gettimeofday... yes
checking for select... yes
checking for strstr... yes
checking for strtol... yes
updating cache ./config.cache
creating ./config.status
creating src/Makefile
creating uisp.spec
creating Makefile
creating src/config.h
---------
# make
---------
Making all in src
make[1]: Wchodzę katalog `/home/[użytkownik]/uisp-20020626/src'
g++ -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c Avr.C
g++ -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c AvrAtmel.C
g++ -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c AvrDummy.C
g++ -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c DAPA.C
g++ -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c Main.C
g++ -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c MotIntl.C
g++ -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c Serial.C
g++ -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c Stk500.C
g++ -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c Terminal.C
g++ -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c cygwinp.C
g++ -g -O2 -o uisp Avr.o AvrAtmel.o AvrDummy.o DAPA.o Main.o MotIntl.o Serial.o Stk500.o Terminal.o cygwinp.o
make[1]: Opuszczam katalog `/home/[użytkownik]/uisp-20020626/src'
make[1]: Wchodzę katalog `/home/[użytkownik]/uisp-20020626'
make[1]: Nie nic do roboty w `all-am'.
make[1]: Opuszczam katalog `/home/[użytkownik]/uisp-20020626'
-------------------
# make insatall
-------------------
Making install in src
make[1]: Wchodzę katalog `/home/[użytkownik]/uisp-20020626/src'
make[2]: Wchodzę katalog `/home/[użytkownik]/uisp-20020626/src'
/bin/sh ../config/mkinstalldirs /usr/local/bin
/usr/bin/install -c uisp /usr/local/bin/uisp
make[2]: Nie nic do roboty w `install-data-am'.
make[2]: Opuszczam katalog `/home/[użytkownik]/uisp-20020626/src'
make[1]: Opuszczam katalog `/home/[użytkownik]/uisp-20020626/src'
make[1]: Wchodzę katalog `/home/[użytkownik]/uisp-20020626'
make[2]: Wchodzę katalog `/home/[użytkownik]/uisp-20020626'
make[2]: Nie nic do roboty w `install-exec-am'.
/bin/sh ./config/mkinstalldirs /usr/local/share/doc/uisp-20020626
mkdir /usr/local/share/doc
mkdir /usr/local/share/doc/uisp-20020626
for file in AUTHORS ChangeLog COPYING INSTALL CHANGES CHANGES.old TODO ; do \
echo " /usr/bin/install -c -m 644 $file /usr/local/share/doc/uisp-20020626/$file"; \
/usr/bin/install -c -m 644 ./$file /usr/local/share/doc/uisp-20020626/$file; \
done
/usr/bin/install -c -m 644 AUTHORS /usr/local/share/doc/uisp-20020626/AUTHORS
/usr/bin/install -c -m 644 ChangeLog /usr/local/share/doc/uisp-20020626/ChangeLog
/usr/bin/install -c -m 644 COPYING /usr/local/share/doc/uisp-20020626/COPYING
/usr/bin/install -c -m 644 INSTALL /usr/local/share/doc/uisp-20020626/INSTALL
/usr/bin/install -c -m 644 CHANGES /usr/local/share/doc/uisp-20020626/CHANGES
/usr/bin/install -c -m 644 CHANGES.old /usr/local/share/doc/uisp-20020626/CHANGES.old
/usr/bin/install -c -m 644 TODO /usr/local/share/doc/uisp-20020626/TODO
make[2]: Opuszczam katalog `/home/[użytkownik]/uisp-20020626'
make[1]: Opuszczam katalog `/home/[użytkownik]/uisp-20020626'
------------------------------------------------------------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------------
Proszę mi pomóc. Chciałbym się w końcu wziąć za programowanie układów, a tu takie problemy.
Moim zdaniem coś albo źle robie albo coś jest skopsane przy pakiecie "gcc-core-3.0.4.tar.gz", ale co jest źle i jak to naprawić, aby wszystko było OKEJ to ja już nie wiem co zrobić.
Proszę mi pomóc, aby "to wszystko" się zintegrowało i aby działało tak jak powinno działać.
Chciałbym się jeszcze zapytać [ale to już w drugiej kolejności, gdyż jeżeli nie rozwiążę popszedniego problemu to nici mi z drugiej odpowiedzi], więc jeszcze chciałbym wiedzieć jak to całe środowisko -> do kompilacji i programowania <- uruchomić. (jakie komendy, itp.)
Pozdrawiam.
spec (ale spec ma tym razem problem, którego już sam nie umie rozwiązać)
Linux + AVR
-
Sebastian RCS
- Użytkownik
- Posty: 472
- Rejestracja: 03 lut 2003, 18:23
- Lokalizacja: Koluszki
- Kontakt:
Odgrzeję temat, bo to się komuś może przydać. Najpierw pościągaj najnowsze wersje programów wymienionych na liście.
-Add the line /usr/local/atmel/lib to the file /etc/ld.so.conf and run the command /sbin/ldconfig to rebuild the linker cache.
Po instalacji binutils musisz dodać do pliku /etc/ld.so.conf wpis /usr/local/atmel/lib, a następnie wpisać do konsoli polecenie ldconfig, oczywiście z roota. Problem z gcc-core był spowodowany prawdopodobnie błędnie ściągniętym archiwum. Dalej, gdy instalujesz avr-libc, powinieneś przedtem linię export PATH=/usr/local/atmel/bin:${PATH} zapisać w pliku /etc/profile (zaraz po oryginalnym export PATH).
Do kompilacji i programowania najlepiej jest wykorzystać program make. Przykładowy makefile możesz znaleźć w pliku http://www.flylab.ovh.org/mixed/robot/robot-program.zip
-Add the line /usr/local/atmel/lib to the file /etc/ld.so.conf and run the command /sbin/ldconfig to rebuild the linker cache.
Po instalacji binutils musisz dodać do pliku /etc/ld.so.conf wpis /usr/local/atmel/lib, a następnie wpisać do konsoli polecenie ldconfig, oczywiście z roota. Problem z gcc-core był spowodowany prawdopodobnie błędnie ściągniętym archiwum. Dalej, gdy instalujesz avr-libc, powinieneś przedtem linię export PATH=/usr/local/atmel/bin:${PATH} zapisać w pliku /etc/profile (zaraz po oryginalnym export PATH).
Do kompilacji i programowania najlepiej jest wykorzystać program make. Przykładowy makefile możesz znaleźć w pliku http://www.flylab.ovh.org/mixed/robot/robot-program.zip