Hallo zusammen, ich programmiere schon seit längerem PICs (unter Win) und ATMEGAs unter Linux in C und ein wenig Assembler. Bin also in der Materie nicht ganz neu. Jetzt habe ich gerade eine Hardware mit einem Attiny45 zusammengebraten, kann sie auch mit dem avrdude ansprechen, nur der Compiler unter Linux ( OpenSuse10.2 ) streikt: sk@noname:> make avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=attiny45 -DF_CPU=16500000 -DDEBUG_LEVEL=0 -c usbdrv/usbdrv.c -o usbdrv/usbdrv.o unknown MCU 'attiny45' specified Known MCU names: avr2 at90s2313 at90s2323 at90s2333 at90s2343 attiny22 attiny26 at90s4414 at90s4433 at90s4434 at90s8515 at90c8534 at90s8535 at86rf401 attiny13 attiny2313 avr3 atmega103 atmega603 at43usb320 at43usb355 at76c711 avr4 atmega8 atmega48 atmega88 atmega8515 atmega8535 avr5 atmega16 atmega161 atmega162 atmega163 atmega165 atmega168 atmega169 atmega32 atmega323 atmega325 atmega3250 atmega64 atmega645 atmega6450 atmega128 at90can128 at94k avr1 at90s1200 attiny11 attiny12 attiny15 attiny28 usbdrv/usbdrv.c:1: error: MCU 'attiny45' supported for assembler only andererseits: sk@noname:> avr-gcc --target-help <bla..bla> Known MCU names: avr1 avr2 avr3 avr4 avr5 at90s1200 attiny10 attiny11 attiny12 attiny15 attiny28 at90s2313 at90s2323 at90s2333 at90s2343 attiny22 attiny26 at90s4433 at90s4414 at90s4434 at90s8515 at90s8535 at90c8534 at86rf401 attiny13 attiny2313 attiny261 attiny461 attiny861 attiny24 attiny44 attiny84 attiny25 attiny45 attiny85 atmega603 atmega103 at43usb320 at43usb355 at76c711 atmega48 atmega8 atmega83 atmega85 atmega88 atmega8515 atmega8535 at90pwm2 at90pwm3 atmega16 atmega161 atmega162 atmega163 atmega164 atmega165 atmega168 atmega169 atmega32 atmega323 atmega324 atmega325 atmega329 atmega3250 atmega3290 atmega406 atmega64 atmega640 atmega644 atmega128 atmega1280 atmega1281 atmega645 atmega649 atmega6450 atmega6490 at90can32 at90can64 at90can128 at90usb646 at90usb647 at90usb1286 at90usb1287 at94k no emulation specific options. Der avr-gcc -v gibt Version gcc version 4.1.2 aus. Ich habe im Internet gesehen, dass es Patches für "neuere" Atmels gibt, weiss aber nicht genau, wie man diese anwendet und vor allem was ich aufgrund der Fehlermeldung patchen soll ( compiler, avr-libc ) und ob ein Patch automatisch mit meiner Version harmoniert. Vielleicht kann mir jemand ein bisschen mehr Klarheit verschaffen. Gruß Stefan
Würde ich mal sagen avr-gcc zu alt... Ich habe:
1 | avr-gcc --version |
2 | avr-gcc (GCC) 4.3.2 |
unter debian (sidux), der kannt sogar schon xmegas..
1 | avr-gcc --target-help |
2 | ....... |
3 | Known MCU names: |
4 | avr1 avr2 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 |
5 | avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 at90s1200 attiny11 |
6 | attiny12 attiny15 attiny28 at90s2313 at90s2323 at90s2333 at90s2343 |
7 | attiny22 attiny26 at90s4433 at90s4414 at90s4434 at90s8515 at90s8535 |
8 | at90c8534 at86rf401 attiny13 attiny2313 attiny261 attiny461 attiny861 |
9 | attiny24 attiny44 attiny84 attiny25 attiny45 attiny85 attiny43u attiny48 |
10 | attiny88 atmega103 at43usb320 at43usb355 at76c711 at90usb82 at90usb162 |
11 | attiny167 atmega48 atmega48p atmega8 atmega88 atmega88p atmega8515 |
12 | atmega8535 atmega8hva at90pwm1 at90pwm2 at90pwm2b at90pwm3 at90pwm3b |
13 | atmega16 atmega161 atmega162 atmega163 atmega164p atmega165 atmega165p |
14 | atmega168 atmega168p atmega169 atmega169p atmega32 atmega323 atmega324p |
15 | atmega325 atmega325p atmega328p atmega329 atmega329p atmega3250 |
16 | atmega3250p atmega3290 atmega3290p atmega406 atmega64 atmega640 |
17 | atmega644 atmega644p atmega128 atmega1280 atmega1281 atmega1284p |
18 | atmega645 atmega649 atmega6450 atmega6490 atmega16hva at90can32 |
19 | at90can64 at90can128 at90pwm216 at90pwm316 atmega32c1 atmega32m1 |
20 | atmega32u4 at90usb646 at90usb647 at90usb1286 at90usb1287 at94k |
21 | atmega2560 atmega2561 atxmega64a1 atxmega128a1 |
Wenns keine neuere Version für SuSE gibt, dann installier doch (lokal, z.B. in /opt) eine neuere.. Gruß, Bernhard
Ja, GCC 4.1.2 ist wirklich hornalt. Ich würde dir Bingo600s Script zum Selbstbauen einer aktuellen Toolchain empfehlen: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=42631
Vielen Dank schonmal, werd's heute abend nach der Arbeit mal antesten.
Hi zusammen. Kurzer Zwischenstatus: Es funktioniert fast überhaupt nichts mehr, selbst der Makelauf für alte Projekte läuft nicht durch weil es scheinbar keinen Linker mehr gibt. Sieht gerade aber wieder etwas positiver aus. Die Builds laufen noch. Nachdem ich den gcc updaten wollte, fehlten ihm naturgemäss einige Module. Dem nachinstallierten Modul "pupifax" fehlten dann wieder "schnurdiwutz" und "hackidoof" usw. Das sind natürlich nur erfundene Namen. Dennoch finde ich das eine ziemlich doofe Eigenschaft unter Linux. Wenn etwas fehlt, sollte der zu installierende Programmteil eigentlich selbst die Methoden dafür mitbringen das nachzurüsten, dann eben nachfragen, ob das ok ist das Modul nachzuziehen und fertig. Ja, Paketinstaller mit Dep-Checker verwenden, aber häufig geht das nicht weil einem für die Distri nur der Sourcecode bleibt. So, texinfo ist upgedated, die heisseste binutils ist jetzt drin, mal sehen, was gcc und avr-libc jetzt sagen. Jetzt hampel ich hier seit 3 Stunden rum, und am Anfang meines Problems haben wahrscheinlich nur eine handvoll Register-Defines für den Tiny45 gefehlt.. Gruß Stefan
Die AVR-Tool-Chain hat eigentlich nicht allzu viele Abhängigkeiten. Wenn du folgende Pakete in halbwegs aktuellen Versionen er Reihe nach für AVRs kompilierst und installierst, sollten die meisten der neueren AVRs (incl. dem attiny45, der nicht mehr ganz so neu ist) unterstützt werden: binutils gcc avr-libc Ich selber verwende binutils 2.18, gcc 4.2.4 (4.3.2 zum Testen) und avr-libc 1.6.2 unter Linux und bin glücklich damit. Zumindest hat bisher noch kein ATtiny45 seine Arbeit verweigert :)
Jetzt klappt wieder alles. Hab binutils, gcc und avr-libc auf dem neuesten Stand, nebenbei auch gmp, make, mpfr und texinfo. Manche makes wollte nur root erfolgreich durchführen. Und ein Boot tut auch immer gut :) Sorry für meinen verbose-mode, ich war echt geladen :) Vielen Dank für die Unterstützung.
Stefan K. wrote:
> Und ein Boot tut auch immer gut :)
Ist aber hier wirklich komplett unnötig.
Ich habe die Tools auch schon vielfach als nicht-root gebaut, allerdings
dann natürlich nicht mit einem --prefix, der auf die Systemverzeichnisse
zeigt.
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.