Sziasztok!
Atmel Atmega88 mikrovezerlot szeretnek progizni majd C nyelven.
Ehhez az avr-libc-re lenne szuksegem ha minden igaz. Hozzáteszem, sima asm-et sem tudtam forditani, mert hiányolta a .def-ben szereplo include-ot. Google szerint ahhoz is avr-libc-re van szukseg.
Sajnos nem telepul. Mi lehet a gond?
# emerge -av dev-embedded/avr-libc
[..]
* Checking for avr-gcc ... [ !! ]
*
* Failed to locate 'avr-gcc' in $PATH. You can install an AVR toolchain using:
* $ crossdev -t avr
*
*
* ERROR: dev-embedded/avr-libc-1.4.4 failed.
* Call stack:
* ebuild.sh, line 49: Called pkg_setup
* avr-libc-1.4.4.ebuild, line 38: Called die
* The specific snippet of code:
* die "AVR toolchain not found"
* The die message:
* AVR toolchain not found
*
* If you need support, post the topmost build error, and the call stack if relevant.
* A complete build log is located at '/var/tmp/portage/dev-embedded/avr-libc-1.4.4/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/dev-embedded/avr-libc-1.4.4/temp/die.env'.
* This ebuild used the following eclasses from overlays:
* /usr/portage/eclass/flag-o-matic.eclass
* /usr/portage/eclass/eutils.eclass
* /usr/portage/eclass/multilib.eclass
* /usr/portage/eclass/toolchain-funcs.eclass
* /usr/portage/eclass/portability.eclass
*
* Messages for package dev-embedded/avr-libc-1.4.4:
*
* Failed to locate 'avr-gcc' in $PATH. You can install an AVR toolchain using:
* $ crossdev -t avr
*
*
* ERROR: dev-embedded/avr-libc-1.4.4 failed.
* Call stack:
* ebuild.sh, line 49: Called pkg_setup
* avr-libc-1.4.4.ebuild, line 38: Called die
* The specific snippet of code:
* die "AVR toolchain not found"
* The die message:
* AVR toolchain not found
*
* If you need support, post the topmost build error, and the call stack if relevant.
* A complete build log is located at '/var/tmp/portage/dev-embedded/avr-libc-1.4.4/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/dev-embedded/avr-libc-1.4.4/temp/die.env'.
* This ebuild used the following eclasses from overlays:
* /usr/portage/eclass/flag-o-matic.eclass
* /usr/portage/eclass/eutils.eclass
* /usr/portage/eclass/multilib.eclass
* /usr/portage/eclass/toolchain-funcs.eclass
* /usr/portage/eclass/portability.eclass
*
# crossdev -t avr
------------------------------------------------------------------------------------------------------------------------
* Host Portage ARCH: x86
* Target Portage ARCH: *
* Target System: avr
* Stage: 3 (C compiler & libc)
* binutils: binutils-[latest]
* gcc: gcc-[latest]
* libc: avr-libc-[latest]
* PORTDIR_OVERLAY: /usr/portage
* PORT_LOGDIR: /var/log/portage
* PKGDIR: /usr/portage/packages/cross/avr
* PORTAGE_TMPDIR: /var/tmp/cross/avr
_ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ -
* Using sys-devel/binutils from /usr/portage instead of /usr/portage
* Using sys-devel/gcc from /usr/portage instead of /usr/portage
* Using dev-embedded/avr-libc from /usr/portage instead of /usr/portage
* Using sys-devel/gdb from /usr/portage instead of /usr/portage
* Using dev-util/insight from /usr/portage instead of /usr/portage
* Forcing the latest versions of {binutils,gcc}-config/gnuconfig ... [ ok ]
* Log: /var/log/portage/cross-avr-binutils.log
* Emerging cross-binutils ... [ ok ]
* Log: /var/log/portage/cross-avr-gcc-stage1.log
* Emerging cross-gcc-stage1 ...
* gcc failed :(
* If you file a bug, please attach the following logfiles:
* /var/log/portage/cross-avr-info.log
* /var/log/portage/cross-avr-gcc-stage1.log
cross-avr-gcc-stage1.log http://pastebin.com/m62b10357
- 3956 megtekintés
Hozzászólások
probalj regebi verzioju gcc -t.
pl. 3.4.6-r2 -t.
- A hozzászóláshoz be kell jelentkezni
Meg veletlenul se kontarkodnek olyanba, amihez nem ertek, de visszaideznek egy reszletet az uzenetbol:
* Failed to locate 'avr-gcc' in $PATH. You can install an AVR toolchain using:
* $ crossdev -t avr
*
Rogton 3 dolog is lehetseges:
- A sajath path-edbe ugyan beleraktad az avr-gcc lelohelyet, azonban a rendszerebe nem. Ne feledd, ennek a /etc/env.d-ben nyomanak kell lenni, csak igy lehet rendszerszintu.
- Az emlitett cucc nem jo nevvel telepult. Symlinkeld at.
- Nincs is fenn avr-gcc binaris a rendszerben.
- A hozzászóláshoz be kell jelentkezni
tmp konyvtarban, ahol buildel probald kiadni make parancsot. Es kimenetet pastebinre.
- A hozzászóláshoz be kell jelentkezni
/usr/tmp/portage/cross-avr # ls
avr-libc-1.4.6 avr-libc-1.4.8 gcc-4.2.3
A "crossdev -t avr"-re kellene felraknia az avr-gcc-t, mivel ennek a binárisa valóban nincs fent.
/var/log/portage/cross-avr-gcc-stage1.log -ból részlet amit befogott a terminal:) 232. sortól érdekes: http://pastebin.com/m61d09c23
Próbáltam kézzel leszedni gcc-core-t és configure-nek megadni hogy avr-re forditsa magát, ott más errort irt, de nem is kavarnám bele a kézzel felrakottat, nehogy vmit összekuszáljon.
--
Desktop: 2.6.21-gentoo-r4 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
Laptop: 2.6.22-gentoo-r5 Mobile Intel(R) Pentium(R) 4 - M CPU 2.00GHz
- A hozzászóláshoz be kell jelentkezni
Ugyanis a Gentoo hihetetlen mennyisegu patchet tol minden binaris cuccba. Arrol nem beszelve, hogy a gcc csak ugy nem fog adott platformu lenni, mert neki kell elobb egy olyan binutils. En mar futottam neki gcc kezi forditasnak, es nem igazabol leanyalom.
A Gcc lelkivilagahoz kepest a hagyma az egy egyszeru faek. Ez nem csak hogy reteges, de meg ossze is kuszalodnak a retegek.
- A hozzászóláshoz be kell jelentkezni
Esetleg ha nem problema, ha 1ms-el lassabban fut le a forditas, akkor kicsomagolhatod a .deb-bol a helyere. Ubihoz van csomag, a repokban megtalalod.
----
Sooner or later you had to talk, even if it was only because you'd run out of things to throw. - Pratchett
honlap készítés
- A hozzászóláshoz be kell jelentkezni
Az a +1ms még épp belefér:))
Köszönöm a tippet, gcc-avr_4.2.2-1_i386.deb-t letöltöttem, deb2tgz-vel átalakitottam (alapból csak üres mappákat láttam benne). Usr-be másolva hiba nélkül feltelepült a dev-embedded/avr-libc. Köszönöm még1x:)
--
Desktop: 2.6.21-gentoo-r4 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
Laptop: 2.6.22-gentoo-r5 Mobile Intel(R) Pentium(R) 4 - M CPU 2.00GHz
- A hozzászóláshoz be kell jelentkezni
Ha mar igy osszejott, lenne nekem is egy keresem.
Ha majd belejottel, akkor irnal egy bejegyzest blogba/wikibe a buktatokrol, milyen egetot sikerult eletre lehelni, es hasonlokrol? Idovel elkepzelheto, hogy en is nekikezdek, es meg valoszinuleg masok is a HUP-rol.
Win-specifikus leirasokat eleg konnyu talalni, de ez kicsit specialisabb terulet.
----
Sooner or later you had to talk, even if it was only because you'd run out of things to throw. - Pratchett
honlap készítés
- A hozzászóláshoz be kell jelentkezni
Buktatói valóban vannak, avr-gcc-vel egyelőre egy .c-t sem sikerült leforditanom amit a suli wikis oldaláról szedtem. Csütörtökön lesz úgyis Prog II. labor, c részét akkor kezdjük, majd rákérdek ezekre. 1-2 linuxos van közöttük.
Az ötlet jó, amint összejön minden rendesen, irok róla:)
Addig is:
http://kando.prociweb.hu/letoltes/?path=./data/1.evfolyam/Programozas_I…
http://wiki.mai.kando.hu/index.php/Atmega88
http://wiki.mai.kando.hu/index.php/Targyak/programozas_II/eloadas
http://wiki.mai.kando.hu/index.php/Targyak/programozas_II/labor
--
Desktop: 2.6.21-gentoo-r4 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
Laptop: 2.6.22-gentoo-r5 Mobile Intel(R) Pentium(R) 4 - M CPU 2.00GHz
- A hozzászóláshoz be kell jelentkezni
Ize.. azt nem neztem, hogy a binutils-avr-re dependel (ez a 3 csomag biztosan kell: avr-libc binutils-avr gcc-avr)
Koszi a linkeket! A wikis oldalon talalt leirasbol nekem mukodik (persze egetni azt nem tudom, de az ott talalt .c-bol kaptam egy .hex-et)
Egy otlet: a Zaurushoz csinalt valaki egy vagy virtualis gep image-et, amin rajta van a crosscompiler, es nem kell vele bohockodni (azert azt eleg maceras beloni, header fileokkal, mindennel egyutt). Ha ezt ilyen ipari meretekben tanitjak a Kandon, erdemes lehet osszerakni egy ilyet. Persze egetni nem lehet az alol, de kevesebb a gond. :)
Nekem gyakorlatilag out-of-the-box mukodott:
pastebin
----
Sooner or later you had to talk, even if it was only because you'd run out of things to throw. - Pratchett
honlap készítés
- A hozzászóláshoz be kell jelentkezni
Kicatolnád a comp.sh-t?:)
Egyébként nálam ezek vannak most fent:
# equery list avr
[ Searching for package 'avr' in all categories among: ]
* installed packages
[I--] [ ] dev-embedded/avr-libc-1.4.4 (0)
[I--] [ ] dev-embedded/avra-1.0.1 (0)
[I--] [ ] dev-embedded/avrdude-5.4 (0)
# equery list binutils
[ Searching for package 'binutils' in all categories among: ]
* installed packages
[I--] [M ] cross-avr/binutils-2.18-r1 (avr)
[I--] [ ] sys-devel/binutils-2.18-r1 (0)
[I--] [ ] sys-devel/binutils-config-1.9-r4 (0)
binutils-config -l
[1] avr-2.18 *
[2] i686-pc-linux-gnu-2.18 *
# avr [TAB]
avra avr-c++filt avr-gcc-4.2.2 avr-man avr-readelf
avr-addr2line avr-cpp avr-gccbug avr-nm avr-size
avr-ar avrdude avr-gcov avr-objcopy avr-strings
avr-as avr-g++ avr-gprof avr-objdump avr-strip
avr-c++ avr-gcc avr-ld avr-ranlib
/Ezek zömmel a avr-gcc.deb-ből jottek./
--
Desktop: 2.6.21-gentoo-r4 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
Laptop: 2.6.22-gentoo-r5 Mobile Intel(R) Pentium(R) 4 - M CPU 2.00GHz
- A hozzászóláshoz be kell jelentkezni
Azert nem tettem ide, mert arrol a wikirol masoltam be kozvetlenul.
nyos@nyos:~/avr$ la
total 44
drwxr-xr-x 2 nyos 4096 2008-04-08 01:26 ./
drwxr-xr-x 113 nyos 4096 2008-04-08 20:15 ../
-rw-r--r-- 1 nyos 162 2008-04-08 01:23 cimek.txt
-rwxr-xr-x 1 nyos 158 2008-04-08 01:26 comp.sh*
-rw-r--r-- 1 nyos 2270 2008-04-08 01:25 peldaprogi.c
-rw-r--r-- 1 nyos 0 2008-04-08 01:26 peldaprogi.c.lst
-rw-r--r-- 1 nyos 901 2008-04-08 01:26 peldaprogi.hex
-rw-r--r-- 1 nyos 8642 2008-04-08 01:26 peldaprogi.lst
-rwxr-xr-x 1 nyos 6363 2008-04-08 01:26 peldaprogi.out*
nyos@nyos:~/avr$ cat comp.sh
avr-gcc -g -o $1.out -mmcu=atmega88 -I /usr/avr/include/avr $1.c
avr-objcopy -j .text -O ihex $1.out $1.hex
avr-objdump -Sd -j .text -j .data $1.out > $1.lst
nyos@nyos:~/avr$ cat peldaprogi.c
#include <avr/io.h> // Az I/O nevek definicioja
#include <avr/interrupt.h> // Megszakitassal kezeljuk a soros portot
#define F_CPU 8000000 // A processzor orajele
#define BAUDRATE 9600 // Az atvitel sebessege
//calculate UBRR value
#define UBRRVAL ((F_CPU/(BAUDRATE*16UL))-1) // Kiszamitjuk a leosztas erteket
void USART_Init(); // A soros egyseg (USART) inicializalasa
int main(void)
{
int byte;
DDRC=0x3F; // A C port adatiranya 1-ki, 0-be
PORTC=0x01; // A PORTC LSB legyen egy
USART_Init(); // Inicializaljuk az USART-ot
PORTC=0x03;
sei(); // IT engedelyezese
while(1) // Vegtelen ciklus
{
}
return 0; // Ide soha nem jut el
}
void USART_Init()
{
//baud beállítása
UBRR0L=UBRRVAL; //low byte
UBRR0H=(UBRRVAL>>8); //high byte
UCSR0C=(0<<UMSEL01)|(0<<UMSEL00)|(0<<UPM01)|(0<<UPM00)|
(0<<USBS0)|(0<<UCSZ02)|(1<<UCSZ01)|(1<<UCSZ00); //bellítjuk asinkron mód, 8 adatbit, 0 paritásbit, 1 stopbit
UCSR0B=(1<<RXEN0)|(1<<TXEN0) |(1<<RXCIE0); //engedélyezzük a megszakítást ha fogadott egy bájtot
}
// ide akkor ugrik ha fogadott egy teljes bájtot
// ez a megszakitast kiszolgalo rutin
ISR(USART_RX_vect)
{
char byte;
byte=UDR0; // a fogadott bajtot betszi a byte nevu valtozoba
if( (byte >= 'a' && byte <='z') || (byte >= 'A' && byte <= 'Z')) // ha betu akkor
{
byte=byte^32; // megcsereli a mertet kicsibol nagyra , nagybol kicsibe
}
while ( !( UCSR0A & (1<<UDRE0)) ); // var ameddig kesz nem lesz a soros egyseg arra hogz uj bajtot kuldjunk
// Na ilyet soha ne csinalj, mert kiszamithatatatlan lesz a progi, de most
// kivetelesen elmegy
UDR0=byte; // elkuldjuk az uj bajtot
}
----
Sooner or later you had to talk, even if it was only because you'd run out of things to throw. - Pratchett
honlap készítés
- A hozzászóláshoz be kell jelentkezni
egy szofisztikáltabb megoldás: szegény ember USB letöltője avr-hez http://www.ladyada.net/make/usbtinyisp/download.html
ha nem akarnál vele bajlódni akkor 2K Huf körüli összegért adok egyet
Ha sokan igényelnének (20+), akkor lehetne nyák gyártáson is gondolkodni
- A hozzászóláshoz be kell jelentkezni
Kosz az ajanlatot, meg megfontolom.
----
Sooner or later you had to talk, even if it was only because you'd run out of things to throw. - Pratchett
honlap készítés
- A hozzászóláshoz be kell jelentkezni
szia engem erdekelne, avn emailed megbeszelni?!
- A hozzászóláshoz be kell jelentkezni
Ugyanebbe a hibába futottam bele. Érdemes beleolvasni a hibaüzenetben megjelölt log-fájlokba:
/var/log/portage/cross-avr-gcc-stage1.log -ben ott van a kulcs:
checking for correct version of gmp.h... yes
checking for correct version of mpfr.h... no
configure: error: Building GCC requires GMP 4.1+ and MPFR 2.3.0+.
# emerge dev-libs/mpfr
nekem szépen meg is oldotta.
- A hozzászóláshoz be kell jelentkezni
Haaat igen, en is mindig szoktam mondogatni, hogy a portage nem hulyesegbol hajtogatja azt, hogy tessen a logfile-kat olvasgatni.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
hali en meg debian alatt siman egettem usb-s jtagice-vel, most valtottam distrot gentoora, beszamolok majd az elmenyeimrol, de gondolom itt sem lesz nagykunszt!
Ja ha valakit erdekel tudok adni nyaktervet usb-s jtagicehez meg leirasokat, firmware-t, csak utana kell epiteni! ~5k alatti osszegbol megvan :o)
- A hozzászóláshoz be kell jelentkezni
kiprobaltam a gentoo-n is az avrzest, es sajnos nekem is csak gcc-avr-rel mukodott, amit debianbol szedtem le, aztan deb2targz-vel alakitottam a /usr-be ahogy Proci85 irta.
Nekem ez a crossdev -t avr-s jatek nagyon nem mukodott, pedig probaltam mindenfele kapcsoloval jatszani, na sebaj.
Ugy is FPGA-k, ARM-k kora ez mar :o)
- A hozzászóláshoz be kell jelentkezni