Forum: Compiler & IDEs Für ATtiny4313 kompilieren?


von J. W. (jw-lighting)


Lesenswert?

Moin!

Nachdem mir mein Flash beim 2313 so langsam ausgegangen ist (ich quäle 
den schon ganz schön) habe ich mit Glück bei Pollin tiny4313 beschaffen 
können.
Ich wollt das Programm nun für den 4313 kompilieren (sind ja 100% 
kompatibel bis auf die unterschiedliche Speichergröße)

Leider kennt der AVR-GCC den tiny4313 nicht. Kann ich einfach für 2313 
kompilieren und es funktioniert trotzdem (auch mit über 2KB)?
Oder muss ich die Headerdateien vom 2313 kopieren und anpassen (oder 
gibt es die fertig)?

LG :)

von Stefan E. (sternst)


Lesenswert?

J. W. schrieb:
> Leider kennt der AVR-GCC den tiny4313 nicht.

Dann hast du dich bei der MCU-Angabe wohl irgendwie vertippt.

von J. W. (jw-lighting)


Lesenswert?

Leider nicht. Das Problem ist auch bekannt.
Für avrdude habe ich den entsprechenden Abschnitt in der avrdude.conf 
schon eingefügt. (gibts im Netz verteilt, unter anderem bei nongnu)

Laut diesem Artikel kann der avr-gcc das auch (in einigen Versionen) Ich 
habe jetzt die 4.7 (vom Nov 2011) installiert - damit gehts nicht.
Welche Version nutzt du denn? Ich arbeite unter Linux (Suse 11.4)

Ist das den eine Frage des gcc oder der avr-libc, ich denke erstes, 
oder?

LG :)

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

J. W. schrieb:

> Laut diesem Artikel kann der avr-gcc das auch (in einigen Versionen) Ich
> habe jetzt die 4.7 (vom Nov 2011) installiert - damit gehts nicht.

*Was* geht denn damit nicht?

Handbücher und XML-Beschreibung für ATtiny4313 sind falsch: sie listen 
SP als 8-Bit Register, was nicht korrekt ist. Das Problem wurde erst 
12/2011 erkannt und behoben:

http://gcc.gnu.org/viewcvs?view=revision&revision=182053

von J. W. (jw-lighting)


Lesenswert?

Johann L. schrieb:
> *Was* geht denn damit nicht?

Er (er)kennt den MCU-Typ nicht und macht dem entsprechend gar nix:

> Fatal error: unknown MCU: attiny4313

Es gibt auch keinen anderen MCU-Typ dafür.

LG :)

PS: Habe avr-gcc-47-20111105-4.7_20111105-6.1.x86_64.rpm installiert.

von Max (Gast)


Lesenswert?

Ich hab avr-gcc aus den (K)ubuntu 11.10 paketen mit eclipse in Benutzug 
und der kompiliert mein Projekt (welches den flash zu 51% füllt (dewegen 
auch der 4313 statt 2313) ganz normal...

von J. W. (jw-lighting)


Lesenswert?

Update: Ich habe die entsprechende Header-Datei bei mir gefunden.
Wie bekomme ich ihn dazu, die auch zu nutzen?
Habe auch schon -mmcu=tn4313 probiert

Liegt in /opt/cross/avr/avr/include/avr und heisst iotn4313.h
Direkter Include anstelle von <avr/io.h> funktioniert nicht.

LG :)

von hp-freund (Gast)


Lesenswert?

Welche Typen kennt dein avr-gcc?

avr-gcc --target-help

von Max (Gast)


Lesenswert?

-mmcu=attiny4313 benutzt eclipse bei mir....

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Das ganze rpm Zeigs sagt mit nix...

Ich hab mal das Beispiel aus
Beitrag "Re: 64Bit Senden, funktioniert zwar, aber wie kann mans effizienter gestallten?"
mit 4.7 für ATtiny4313 compilier. Geht problemlos.

Wie an der Ausgabe zu erkennen, wurde -mmcu=attiny4313 gesetzt. An den 
Optionen wurde m.W. auch nix geändert.
1
  .file  "foo.c"
2
__SP_H__ = 0x3e
3
__SP_L__ = 0x3d
4
__SREG__ = 0x3f
5
__RAMPZ__ = 0x3b
6
__tmp_reg__ = 0
7
__zero_reg__ = 1
8
 ;  GNU C (GCC) version 4.7.0 20120102 (experimental) (avr)
9
 ;   compiled by GNU C version 3.4.5 (mingw-vista special r2), GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2
10
 ;  GGC heuristics: --param ggc-min-expand=47 --param ggc-min-heapsize=32702
11
 ;  options passed:  -fpreprocessed foo.i -mmcu=attiny4313 -Os -std=gnu99
12
 ;  -fverbose-asm -fno-move-loop-invariants
13
 ;  options enabled:  -fauto-inc-dec -fbranch-count-reg -fcaller-saves
14
 ;  -fcombine-stack-adjustments -fcommon -fcompare-elim -fcprop-registers
15
 ;  -fcrossjumping -fcse-follow-jumps -fdebug-types-section -fdefer-pop
16
 ;  -fdevirtualize -fearly-inlining -feliminate-unused-debug-types
17
 ;  -fexpensive-optimizations -fforward-propagate -ffunction-cse -fgcse
18
 ;  -fgcse-lm -fgnu-runtime -fguess-branch-probability -fident
19
 ;  -fif-conversion -fif-conversion2 -findirect-inlining -finline
20
 ;  -finline-atomics -finline-functions -finline-functions-called-once
21
 ;  -finline-small-functions -fipa-cp -fipa-profile -fipa-pure-const
22
 ;  -fipa-reference -fipa-sra -fira-share-save-slots
23
 ;  -fira-share-spill-slots -fivopts -fkeep-static-consts
24
 ;  -fleading-underscore -fmath-errno -fmerge-constants
25
 ;  -fmerge-debug-strings -fomit-frame-pointer -foptimize-register-move
26
 ;  -foptimize-sibling-calls -fpartial-inlining -fpeephole -fpeephole2
27
 ;  -fprefetch-loop-arrays -freg-struct-return -fregmove -freorder-blocks
28
 ;  -freorder-functions -frerun-cse-after-loop
29
 ;  -fsched-critical-path-heuristic -fsched-dep-count-heuristic
30
 ;  -fsched-group-heuristic -fsched-interblock -fsched-last-insn-heuristic
31
 ;  -fsched-rank-heuristic -fsched-spec -fsched-spec-insn-heuristic
32
 ;  -fsched-stalled-insns-dep -fshow-column -fshrink-wrap -fsigned-zeros
33
 ;  -fsplit-ivs-in-unroller -fsplit-wide-types -fstrict-aliasing
34
 ;  -fstrict-overflow -fstrict-volatile-bitfields -fthread-jumps
35
 ;  -ftoplevel-reorder -ftrapping-math -ftree-bit-ccp
36
 ;  -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-copy-prop
37
 ;  -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse
38
 ;  -ftree-forwprop -ftree-fre -ftree-loop-if-convert -ftree-loop-im
39
 ;  -ftree-loop-ivcanon -ftree-loop-optimize -ftree-parallelize-loops=
40
 ;  -ftree-phiprop -ftree-pre -ftree-pta -ftree-reassoc -ftree-scev-cprop
41
 ;  -ftree-sink -ftree-slp-vectorize -ftree-sra -ftree-switch-conversion
42
 ;  -ftree-tail-merge -ftree-ter -ftree-vect-loop-version -ftree-vrp
43
 ;  -funit-at-a-time -fverbose-asm -fzero-initialized-in-bss
44
45
  .text
46
.global  send
47
  .type  send, @function
48
send:
49
  push r28   ; 
50
  push r29   ; 
51
/* prologue: function */
52
/* frame size = 0 */
53
/* stack size = 2 */
54
.L__stack_usage = 2
55
  mov r28,r24   ;  leds, leds
56
  ldi r29,lo8(8)   ;  ivtmp.3,
57
.L4:
58
  cpi r28,lo8(8)   ;  leds,
59
  brlo .L2   ; ,
60
  subi r28,lo8(-(-8))   ;  leds,
61
  ldi r24,0   ;  val
62
  rjmp .L3   ; 
63
.L2:
64
  ldi r18,lo8(1)   ;  tmp54,
65
  ldi r19,0   ; 
66
  rjmp 2f
67
  1:
68
  lsl r18   ;  tmp58
69
  2:
70
  dec r28   ;  leds
71
  brpl 1b
72
  mov r24,r18   ;  val, tmp58
73
  ldi r28,0   ;  leds
74
.L3:
75
  subi r24,lo8(-(-1))   ; ,
76
  rcall SPI_MasterTransmit   ; 
77
  subi r29,lo8(-(-1))   ;  ivtmp.3,
78
  brne .L4   ; ,
79
/* epilogue start */
80
  pop r29   ; 
81
  pop r28   ; 
82
  ret
83
  .size  send, .-send
84
  .ident  "GCC: (GNU) 4.7.0 20120102 (experimental)"

Was ist denn bei dir die Ausgabe, wenn zusätzlich -v gesetzt wird?

von J. W. (jw-lighting)


Lesenswert?

hp-freund schrieb:
> Welche Typen kennt dein avr-gcc?

Known MCU names:
  avr1 avr2 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1
  avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 at90s1200
  attiny11 attiny12 attiny15 attiny28 at90s2313 at90s2323 at90s2333
  at90s2343 attiny22 attiny26 at90s4414 at90s4433 at90s4434 at90s8515
  at90c8534 at90s8535 attiny13 attiny13a attiny2313 attiny24 attiny44
  attiny84 attiny25 attiny45 attiny85 attiny261 attiny461 attiny861
  attiny43u attiny48 attiny88 at86rf401 at43usb355 at76c711 atmega103
  at43usb320 attiny167 at90usb82 at90usb162 atmega8 atmega48 atmega48p
  atmega88 atmega88p atmega8515 atmega8535 atmega8hva at90pwm1 at90pwm2
  at90pwm2b at90pwm3 at90pwm3b atmega16 atmega161 atmega162 atmega163
  atmega164p atmega165 atmega165p atmega168 atmega168p atmega169
  atmega169p atmega32 atmega323 atmega324p atmega325 atmega325p 
atmega3250
  atmega3250p atmega328p atmega329 atmega329p atmega3290 atmega3290p
  atmega406 atmega64 atmega640 atmega644 atmega644p atmega645 atmega649
  atmega6450 atmega6490 atmega16hva at90can32 at90can64 at90pwm216
  at90pwm316 atmega16u4 atmega32c1 atmega32m1 atmega32u4 atmega32u6
  at90usb646 at90usb647 at94k atmega128 atmega1280 atmega1281 
atmega1284p
  atmega128rfa1 at90can128 at90usb1286 at90usb1287 atmega2560 atmega2561
  atxmega16a4 atxmega16d4 atxmega32d4 atxmega32a4 atxmega64a3 
atxmega64a1
  atxmega128a3 atxmega256a3 atxmega256a3b atxmega128a1


Vielleicht sollte ich grundsätzlich kurz anmerken, dass das Projekt in C 
verfasst ist

Johann L. schrieb:
> Was ist denn bei dir die Ausgabe, wenn zusätzlich -v gesetzt wird?

Ohje:

avr-gcc-47 -mmcu=attiny4313 -Os -v -o vitrinencontroller.o 
vitrinencontroller.c ->
1
Using built-in specs.
2
COLLECT_GCC=avr-gcc-47
3
COLLECT_LTO_WRAPPER=/opt/cross/avr/lib64/gcc/avr/4.7.0/lto-wrapper
4
Target: avr
5
Configured with: ../gcc-4.7-20111105/configure -v --prefix=/opt/cross/avr --exec-prefix=/opt/cross/avr --libdir=/opt/cross/avr/lib64 --libexecdir=/opt/cross/avr/lib64 --mandir=/opt/cross/avr/share/man --infodir=/opt/cross/avr/share/info --with-gnu-ld --with-gnu-as --target=avr --enable-languages=c,c++ --program-prefix=avr- --program-suffix=-47-20111105 --with-sys-root=/opt/cross/avr --disable-nls --disable-libssp --with-dwarf2 --with-ppl --with-cloog
6
Thread model: single
7
gcc version 4.7.0 20111105 (experimental) (GCC)
8
COLLECT_GCC_OPTIONS='-mmcu=attiny4313' '-Os' '-v' '-o' 'vitrinencontroller.o'
9
 /opt/cross/avr/lib64/gcc/avr/4.7.0/cc1 -quiet -v -imultilib avr25 vitrinencontroller.c -quiet -dumpbase vitrinencontroller.c -mmcu=attiny4313 -auxbase vitrinencontroller -Os -version -o /tmp/ccfMW9TH.s
10
GNU C (GCC) version 4.7.0 20111105 (experimental) (avr)
11
  compiled by GNU C version 4.5.1 20101208 [gcc-4_5-branch revision 167585], GMP version 4.3.1, MPFR version 2.4.1, MPC version 0.8.2
12
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
13
ignoring nonexistent directory "/opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/sys-include"
14
#include "..." search starts here:
15
#include <...> search starts here:
16
 /opt/cross/avr/lib64/gcc/avr/4.7.0/include
17
 /opt/cross/avr/lib64/gcc/avr/4.7.0/include-fixed
18
 /opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/include
19
End of search list.
20
GNU C (GCC) version 4.7.0 20111105 (experimental) (avr)
21
  compiled by GNU C version 4.5.1 20101208 [gcc-4_5-branch revision 167585], GMP version 4.3.1, MPFR version 2.4.1, MPC version 0.8.2
22
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
23
Compiler executable checksum: 7be667537fcf464e6c82afe74c330331
24
COLLECT_GCC_OPTIONS='-mmcu=attiny4313' '-Os' '-v' '-o' 'vitrinencontroller.o'
25
 /opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/bin/as -v -mmcu=attiny4313 -o /tmp/ccYThXke.o /tmp/ccfMW9TH.s
26
27
GNU assembler version 2.19.1 (avr) using BFD version (GNU Binutils) 2.19.1 + coff-avr-patch (20050630)
28
Known MCU names:
29
  avr1 avr2 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1
30
  avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 at90s1200
31
  attiny11 attiny12 attiny15 attiny28 at90s2313 at90s2323 at90s2333
32
  at90s2343 attiny22 attiny26 at90s4414 at90s4433 at90s4434 at90s8515
33
  at90c8534 at90s8535 attiny13 attiny13a attiny2313 attiny24 attiny44
34
  attiny84 attiny25 attiny45 attiny85 attiny261 attiny461 attiny861
35
  attiny43u attiny48 attiny88 at86rf401 at43usb355 at76c711 atmega103
36
  at43usb320 attiny167 at90usb82 at90usb162 atmega8 atmega48 atmega48p
37
  atmega88 atmega88p atmega8515 atmega8535 atmega8hva at90pwm1 at90pwm2
38
  at90pwm2b at90pwm3 at90pwm3b atmega16 atmega161 atmega162 atmega163
39
  atmega164p atmega165 atmega165p atmega168 atmega168p atmega169
40
  atmega169p atmega32 atmega323 atmega324p atmega325 atmega325p atmega3250
41
  atmega3250p atmega328p atmega329 atmega329p atmega3290 atmega3290p
42
  atmega406 atmega64 atmega640 atmega644 atmega644p atmega645 atmega649
43
  atmega6450 atmega6490 atmega16hva at90can32 at90can64 at90pwm216
44
  at90pwm316 atmega16u4 atmega32c1 atmega32m1 atmega32u4 atmega32u6
45
  at90usb646 at90usb647 at94k atmega128 atmega1280 atmega1281 atmega1284p
46
  atmega128rfa1 at90can128 at90usb1286 at90usb1287 atmega2560 atmega2561
47
  atxmega16a4 atxmega16d4 atxmega32d4 atxmega32a4 atxmega64a3 atxmega64a1
48
  atxmega128a3 atxmega256a3 atxmega256a3b atxmega128a1
49
Assembler messages:
50
Fatal error: unknown MCU: attiny4313

LG :)

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Aha.

Der Compiler kann also attiny4313, aber der Assembler (avr-as) hingegen 
nicht!

Du brauchst eine weniger angestaubte Version der binutils, etwa 2.21. 
Ein segmentation fault in 2.22 (PR12161) ist seit Anfang Januar behoben, 
aber dieser Fix ist m.W. noch nicht releast.

http://sourceware.org/bugzilla/show_bug.cgi?id=12161#c17

von J. W. (jw-lighting)


Lesenswert?

Ich habe binutils 2.21 und avr-binutils 2.19 installiert. Kreige leider 
auch keine neueren Versionen übers Repo.

Woraus schliesst du, dass es nicht am Compiler liegt?

Ich fange so langsam an zu verzweifeln... ;)

LG :)

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Daran:

> Assembler messages:
> Fatal error: unknown MCU: attiny4313

Und weil der Assembler gestartet wird, was bei einem Compilerfehler 
nicht der Fall ist, siehe

> opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/bin/as -v -mmcu=atti 
ny4313 -o /tmp/ccYThXke.o /tmp/ccfMW9TH.s

Mit -save-temps bekommst du auch das Assembler-File vom Compiler: 
vitrinencontroller.s

binutils 2.21 nutzen dir nix. Es sei denn, du willst ein Programm für 
deinen Rechner übersetzen...

Es müssen schon die avr-binutils sein.

von J. W. (jw-lighting)


Lesenswert?

Johann L. schrieb:
> binutils 2.21 nutzen dir nix. Es sei denn, du willst ein Programm für
> deinen Rechner übersetzen...
>
> Es müssen schon die avr-binutils sein.

Hast du einen Tipp für mich, wo ich die entweder als *.rpm zur 
Installation finde, oder aber wo ich den src-Code beziehen kann und wie 
ich dann installieren muss?

Zumindest weiß ich jetzt schonmal, wo das Problem liegt, klasse!

LG :)

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Die configure-Optionen für binutils sind leider nicht angegeben, aber 
von dem was oben steht sollte

> --target=avr --prefix=/opt/cross/avr

passen. Also eigenes Build-Verzeichnis machen und von dort aus

> <PATH_TO_BINUTILS>/configure --target=avr --prefix=/opt/cross/avr
> make
> make install (als Ruth)

http://ftp.gnu.org/gnu/binutils/

von hp-freund (Gast)


Lesenswert?


von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Johann L. schrieb:
> Die configure-Optionen für binutils sind leider nicht angegeben, aber
> von dem was oben steht sollte
>
>> --target=avr --prefix=/opt/cross/avr
>
> passen.

Und evtl. noch --disable-nls wenn man keine Fehlermeldungen in Khmer, 
Sanskrit oder Kisuaheli braucht.

von J. W. (jw-lighting)


Lesenswert?

Ich probier das die nächsten Tage. Momentan Klausuren-Stress ;)

Danke soweit, LG :)

von J. W. (jw-lighting)


Lesenswert?

hp-freund schrieb:
> http://www.mikrocontroller.net/articles/AVR_und_Linux

Du scheinst ein Vorherseher zu sein :p
Im Repo findet sich seit dem 7.2. die Version 2.22 der avr-binutils als 
rpm:

http://download.opensuse.org/repositories/CrossToolchain:/avr/openSUSE_11.4/x86_64/cross-avr-binutils-2.22-1.1.x86_64.rpm

Ich geh dann mal installieren

LG :)

von R. M. (rmax)


Lesenswert?

J. W. schrieb:

> Im Repo findet sich seit dem 7.2. die Version 2.22 der avr-binutils als
> rpm:

Das habe ich als Reaktion auf diesen Thread dorthin gepackt. :)

Ich bin allerdings noch nicht groß zum Testen gekommen und bin deshalb 
an Feedback interessiert...

von J. W. (jw-lighting)


Lesenswert?

Schade:

bekomme jetzt folgende Ausgabe:
1
avr-gcc-47 -mmcu=attiny4313 -Os -v -o vitrinencontroller.o vitrinencontroller.c (im Verzeichnis: /home/jw-lighting/Dokumente/avrproj/thwjugend_playmobil)
2
Using built-in specs.
3
COLLECT_GCC=avr-gcc-47
4
COLLECT_LTO_WRAPPER=/opt/cross/avr/lib64/gcc/avr/4.7.0/lto-wrapper
5
Target: avr
6
Configured with: ../gcc-4.7-20111105/configure -v --prefix=/opt/cross/avr --exec-prefix=/opt/cross/avr --libdir=/opt/cross/avr/lib64 --libexecdir=/opt/cross/avr/lib64 --mandir=/opt/cross/avr/share/man --infodir=/opt/cross/avr/share/info --with-gnu-ld --with-gnu-as --target=avr --enable-languages=c,c++ --program-prefix=avr- --program-suffix=-47-20111105 --with-sys-root=/opt/cross/avr --disable-nls --disable-libssp --with-dwarf2 --with-ppl --with-cloog
7
Thread model: single
8
gcc version 4.7.0 20111105 (experimental) (GCC)
9
COLLECT_GCC_OPTIONS='-mmcu=attiny4313' '-Os' '-v' '-o' 'vitrinencontroller.o'
10
 /opt/cross/avr/lib64/gcc/avr/4.7.0/cc1 -quiet -v -imultilib avr25 vitrinencontroller.c -quiet -dumpbase vitrinencontroller.c -mmcu=attiny4313 -auxbase vitrinencontroller -Os -version -o /tmp/ccADkm1G.s
11
GNU C (GCC) version 4.7.0 20111105 (experimental) (avr)
12
  compiled by GNU C version 4.5.1 20101208 [gcc-4_5-branch revision 167585], GMP version 4.3.1, MPFR version 2.4.1, MPC version 0.8.2
13
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
14
ignoring nonexistent directory "/opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/sys-include"
15
#include "..." search starts here:
16
#include <...> search starts here:
17
 /opt/cross/avr/lib64/gcc/avr/4.7.0/include
18
 /opt/cross/avr/lib64/gcc/avr/4.7.0/include-fixed
19
 /opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/include
20
End of search list.
21
GNU C (GCC) version 4.7.0 20111105 (experimental) (avr)
22
  compiled by GNU C version 4.5.1 20101208 [gcc-4_5-branch revision 167585], GMP version 4.3.1, MPFR version 2.4.1, MPC version 0.8.2
23
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
24
Compiler executable checksum: 3d94c45c86a5a77538f6645eb0084b77
25
COLLECT_GCC_OPTIONS='-mmcu=attiny4313' '-Os' '-v' '-o' 'vitrinencontroller.o'
26
 /opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/bin/as -v -mmcu=attiny4313 -o /tmp/cc3RpSha.o /tmp/ccADkm1G.s
27
GNU assembler version 2.22 (avr) using BFD version (GNU Binutils) 2.22
28
COMPILER_PATH=/opt/cross/avr/lib64/gcc/avr/4.7.0/:/opt/cross/avr/lib64/gcc/avr/4.7.0/:/opt/cross/avr/lib64/gcc/avr/:/opt/cross/avr/lib64/gcc/avr/4.7.0/:/opt/cross/avr/lib64/gcc/avr/:/opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/bin/
29
LIBRARY_PATH=/opt/cross/avr/lib64/gcc/avr/4.7.0/avr25/:/opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/lib/avr25/:/opt/cross/avr/lib64/gcc/avr/4.7.0/:/opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/lib/
30
COLLECT_GCC_OPTIONS='-mmcu=attiny4313' '-Os' '-v' '-o' 'vitrinencontroller.o'
31
 /opt/cross/avr/lib64/gcc/avr/4.7.0/collect2 -m avr25 -o vitrinencontroller.o crttn4313.o -L/opt/cross/avr/lib64/gcc/avr/4.7.0/avr25 -L/opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/lib/avr25 -L/opt/cross/avr/lib64/gcc/avr/4.7.0 -L/opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/lib /tmp/cc3RpSha.o -lgcc -lc -lgcc
32
Kompilierung fehlgeschlagen.
33
/opt/cross/avr/lib64/gcc/avr/4.7.0/../../../../avr/bin/ld: cannot find crttn4313.o: No such file or directory
34
collect2: error: ld returned 1 exit status

Was hat die Datei für eine Bewandnis?

LG :)

von J. W. (jw-lighting)


Lesenswert?

Hallo,

so ich bin jetzt schon so weit, dass die Datei wohl vom Linker gebraucht 
wird und ich weiß auch, wo sie hingehört (und dort fehlt sie 
tatsächlich, obwohl angeblich Teil der avr-libc).

Erst habe ich hier eine gefunden:
http://chomikuj.pl/plama6/Nauka/Kursy+Elektronika/winavr/avr/lib/avr25/crttn4313,1072117332.o
Da mein PC kein Polnisch spricht, oder wohl eher, da für Win hat das 
nicht funktioniert.

Dann habe ich mir das avr-libc-RPM von Fedora installiert. Ist leider in 
einem anderen Pfad gelandet. Odrt habe ich die crttn4313.o herauskopiert 
und das Paket wieder deinstalliert. Anschliessend habe ich die avr-libc 
aus dem Suse-Repo wieder installiert und die Kopie der crttn4313.o aus 
dem Fedora-Paket im entsprechenden Verzeichnis 
(/opt/cross/avr/avr/lib/avr25) eingefügt.

Neuer Versuch: Es hat funktioniert!!
(Obs auch rennt, wird noch getestet)

Ich danke vielmals für eure Hilfe und werde mich mal an die Jungs von 
Suse wenden: die sollen ihre avr-libc komplettieren :p

LG :)

von R. M. (rmax)


Lesenswert?

J. W. schrieb:

> so ich bin jetzt schon so weit, dass die Datei wohl vom Linker gebraucht
> wird und ich weiß auch, wo sie hingehört (und dort fehlt sie
> tatsächlich, obwohl angeblich Teil der avr-libc).

Ja, die crt*-Dateien enthalten Startup-Code und werden automatisch 
dazugelinkt.

> Ich danke vielmals für eure Hilfe und werde mich mal an die Jungs von
> Suse wenden: die sollen ihre avr-libc komplettieren :p

Ich kümmere mich am Montag darum...

von J. W. (jw-lighting)


Lesenswert?

R. Max schrieb:
> Ich kümmere mich am Montag darum...

Oh, schön, dann brauch ich ja gar keine Mailadresse mehr zu suchen usw. 
;)

Der Controller rennt im übrigen, also alles rund um erfolgreich.

LG :)

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Bislang hat avr-libc noch nicht die neue multilib-Struktur von avr-gcc 
implementiert, siehe http://savannah.nongnu.org/bugs/index.php?35407

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
Noch kein Account? Hier anmelden.