Hast du wirklich versucht über elf zu gehen? Direkt nach ihex ist auch aus anderen gründen nicht zu empfehlen. Wozu hast du überhaupt -g an? Aus einem ihex kannste eh nicht debuggen...
Druckbare Version
Hast du wirklich versucht über elf zu gehen? Direkt nach ihex ist auch aus anderen gründen nicht zu empfehlen. Wozu hast du überhaupt -g an? Aus einem ihex kannste eh nicht debuggen...
ja.Zitat:
Zitat von SprinterSB
das hier gebe ich ein:
$ avr-gcc arg.c -o arg.elf -mmcu=atmega16 -Os
$ avr-objcopy -j .text -j .data -O ihex arg.elf arg.hex
das steht so in dem artikel: > avr-gcc blinky-all.c -o blinky-all.elf -mmcu=atmega32 -g -OsZitat:
Zitat von SprinterSB
habe es jetzt weggelassen und habe nochmal ein ihex draus gemacht. ist aber immer noch sooo lang
SEIDL.
Ich dachte, Du hast einen ATMega16 und keinen ATMega32...Zitat:
Zitat von Benedikt.Seidl
Hans
hmmm
Das elf sieht bei mir so aus:
avr-gcc arg.c -o arg.elf -mmcu=atmega16 -Os
avr-objdump -d arg.elf
Und das hex so:Code:arg.elf: file format elf32-avr
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54 <__ctors_end>
4: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
8: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
10: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
14: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
18: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
1c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
20: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
24: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
28: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
2c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
30: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
34: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
38: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
3c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
40: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
44: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
48: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
4c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
50: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
00000054 <__ctors_end>:
54: 11 24 eor r1, r1
56: 1f be out 0x3f, r1 ; 63
58: cf e5 ldi r28, 0x5F ; 95
5a: d4 e0 ldi r29, 0x04 ; 4
5c: de bf out 0x3e, r29 ; 62
5e: cd bf out 0x3d, r28 ; 61
00000060 <__do_copy_data>:
60: 10 e0 ldi r17, 0x00 ; 0
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: ec ee ldi r30, 0xEC ; 236
68: f0 e0 ldi r31, 0x00 ; 0
6a: 02 c0 rjmp .+4 ; 0x70 <.do_copy_data_start>
0000006c <.do_copy_data_loop>:
6c: 05 90 lpm r0, Z+
6e: 0d 92 st X+, r0
00000070 <.do_copy_data_start>:
70: a0 36 cpi r26, 0x60 ; 96
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c <.do_copy_data_loop>
00000076 <__do_clear_bss>:
76: 10 e0 ldi r17, 0x00 ; 0
78: a0 e6 ldi r26, 0x60 ; 96
7a: b0 e0 ldi r27, 0x00 ; 0
7c: 01 c0 rjmp .+2 ; 0x80 <.do_clear_bss_start>
0000007e <.do_clear_bss_loop>:
7e: 1d 92 st X+, r1
00000080 <.do_clear_bss_start>:
80: a0 36 cpi r26, 0x60 ; 96
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0c 94 5e 00 jmp 0xbc <main>
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0x0 <__vectors>
0000008e <warte>:
8e: cf 93 push r28
90: df 93 push r29
92: ac 01 movw r20, r24
94: 20 e0 ldi r18, 0x00 ; 0
96: 30 e0 ldi r19, 0x00 ; 0
98: 28 17 cp r18, r24
9a: 39 07 cpc r19, r25
9c: 64 f4 brge .+24 ; 0xb6 <warte+0x28>
9e: a4 ec ldi r26, 0xC4 ; 196
a0: b9 e0 ldi r27, 0x09 ; 9
a2: c0 e0 ldi r28, 0x00 ; 0
a4: d0 e0 ldi r29, 0x00 ; 0
a6: cd 01 movw r24, r26
a8: 01 97 sbiw r24, 0x01 ; 1
aa: f1 f7 brne .-4 ; 0xa8 <warte+0x1a>
ac: 2f 5f subi r18, 0xFF ; 255
ae: 3f 4f sbci r19, 0xFF ; 255
b0: 24 17 cp r18, r20
b2: 35 07 cpc r19, r21
b4: c4 f3 brlt .-16 ; 0xa6 <warte+0x18>
b6: df 91 pop r29
b8: cf 91 pop r28
ba: 08 95 ret
000000bc <main>:
bc: cf e5 ldi r28, 0x5F ; 95
be: d4 e0 ldi r29, 0x04 ; 4
c0: de bf out 0x3e, r29 ; 62
c2: cd bf out 0x3d, r28 ; 61
c4: 8f ef ldi r24, 0xFF ; 255
c6: 84 bb out 0x14, r24 ; 20
c8: 87 bb out 0x17, r24 ; 23
ca: 8a bb out 0x1a, r24 ; 26
cc: 8f ef ldi r24, 0xFF ; 255
ce: 88 bb out 0x18, r24 ; 24
d0: 8b bb out 0x1b, r24 ; 27
d2: 85 bb out 0x15, r24 ; 21
d4: 80 e9 ldi r24, 0x90 ; 144
d6: 91 e0 ldi r25, 0x01 ; 1
d8: 0e 94 47 00 call 0x8e <warte>
dc: 18 ba out 0x18, r1 ; 24
de: 1b ba out 0x1b, r1 ; 27
e0: 15 ba out 0x15, r1 ; 21
e2: 80 e9 ldi r24, 0x90 ; 144
e4: 91 e0 ldi r25, 0x01 ; 1
e6: 0e 94 47 00 call 0x8e <warte>
ea: f0 cf rjmp .-32 ; 0xcc <main+0x10>
avr-objcopy -j .text -j .data -O ihex arg.elf arg.hex
avr-objdump -D arg.hex -mavr5
Das hex codiert also rund 240 Bytes (Objektgröße) in 680 Bytes (Dateigröße).Code:arg.hex: file format ihex
Disassembly of section .sec1:
00000000 <.sec1>:
0: 0c 94 2a 00 jmp 0x0x54
4: 0c 94 45 00 jmp 0x0x8a
8: 0c 94 45 00 jmp 0x0x8a
c: 0c 94 45 00 jmp 0x0x8a
10: 0c 94 45 00 jmp 0x0x8a
14: 0c 94 45 00 jmp 0x0x8a
18: 0c 94 45 00 jmp 0x0x8a
1c: 0c 94 45 00 jmp 0x0x8a
20: 0c 94 45 00 jmp 0x0x8a
24: 0c 94 45 00 jmp 0x0x8a
28: 0c 94 45 00 jmp 0x0x8a
2c: 0c 94 45 00 jmp 0x0x8a
30: 0c 94 45 00 jmp 0x0x8a
34: 0c 94 45 00 jmp 0x0x8a
38: 0c 94 45 00 jmp 0x0x8a
3c: 0c 94 45 00 jmp 0x0x8a
40: 0c 94 45 00 jmp 0x0x8a
44: 0c 94 45 00 jmp 0x0x8a
48: 0c 94 45 00 jmp 0x0x8a
4c: 0c 94 45 00 jmp 0x0x8a
50: 0c 94 45 00 jmp 0x0x8a
54: 11 24 eor r1, r1
56: 1f be out 0x3f, r1 ; 63
58: cf e5 ldi r28, 0x5F ; 95
5a: d4 e0 ldi r29, 0x04 ; 4
5c: de bf out 0x3e, r29 ; 62
5e: cd bf out 0x3d, r28 ; 61
60: 10 e0 ldi r17, 0x00 ; 0
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: ec ee ldi r30, 0xEC ; 236
68: f0 e0 ldi r31, 0x00 ; 0
6a: 02 c0 rjmp .+4 ; 0x0x70
6c: 05 90 lpm r0, Z+
6e: 0d 92 st X+, r0
70: a0 36 cpi r26, 0x60 ; 96
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x0x6c
76: 10 e0 ldi r17, 0x00 ; 0
78: a0 e6 ldi r26, 0x60 ; 96
7a: b0 e0 ldi r27, 0x00 ; 0
7c: 01 c0 rjmp .+2 ; 0x0x80
7e: 1d 92 st X+, r1
80: a0 36 cpi r26, 0x60 ; 96
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x0x7e
86: 0c 94 5e 00 jmp 0x0xbc
8a: 0c 94 00 00 jmp 0x0x0
8e: cf 93 push r28
90: df 93 push r29
92: ac 01 movw r20, r24
94: 20 e0 ldi r18, 0x00 ; 0
96: 30 e0 ldi r19, 0x00 ; 0
98: 28 17 cp r18, r24
9a: 39 07 cpc r19, r25
9c: 64 f4 brge .+24 ; 0x0xb6
9e: a4 ec ldi r26, 0xC4 ; 196
a0: b9 e0 ldi r27, 0x09 ; 9
a2: c0 e0 ldi r28, 0x00 ; 0
a4: d0 e0 ldi r29, 0x00 ; 0
a6: cd 01 movw r24, r26
a8: 01 97 sbiw r24, 0x01 ; 1
aa: f1 f7 brne .-4 ; 0x0xa8
ac: 2f 5f subi r18, 0xFF ; 255
ae: 3f 4f sbci r19, 0xFF ; 255
b0: 24 17 cp r18, r20
b2: 35 07 cpc r19, r21
b4: c4 f3 brlt .-16 ; 0x0xa6
b6: df 91 pop r29
b8: cf 91 pop r28
ba: 08 95 ret
bc: cf e5 ldi r28, 0x5F ; 95
be: d4 e0 ldi r29, 0x04 ; 4
c0: de bf out 0x3e, r29 ; 62
c2: cd bf out 0x3d, r28 ; 61
c4: 8f ef ldi r24, 0xFF ; 255
c6: 84 bb out 0x14, r24 ; 20
c8: 87 bb out 0x17, r24 ; 23
ca: 8a bb out 0x1a, r24 ; 26
cc: 8f ef ldi r24, 0xFF ; 255
ce: 88 bb out 0x18, r24 ; 24
d0: 8b bb out 0x1b, r24 ; 27
d2: 85 bb out 0x15, r24 ; 21
d4: 80 e9 ldi r24, 0x90 ; 144
d6: 91 e0 ldi r25, 0x01 ; 1
d8: 0e 94 47 00 call 0x0x8e
dc: 18 ba out 0x18, r1 ; 24
de: 1b ba out 0x1b, r1 ; 27
e0: 15 ba out 0x15, r1 ; 21
e2: 80 e9 ldi r24, 0x90 ; 144
e4: 91 e0 ldi r25, 0x01 ; 1
e6: 0e 94 47 00 call 0x0x8e
ea: f0 cf rjmp .-32 ; 0x0xcc
jup. war nur ein zitat von der seite.Zitat:
Zitat von johannuhrmann
avr-gcc arg.c -o arg.elf -mmcu=atmega16 -Os
avr-objdump -d arg.elf
bei mir kommt nach diesen befehlen das hier raus:klick
(da kommt nach main noch was)
danke für die andauernde hilfe!
SEIDL.
Hi Benedikt,
aus irgendwelchen unerfindlichen Gründen verwendet Deine avr-libc Fließkommaemulationen. (zumindest sieht es für mich so aus)
Bitte schreib doch mal die Ausgaben folgender Befehle:
- avr-gcc -v
- avr-objcopy -V
Welche Version der avr-libc verwendest Du?
Wie hast Du die Tools übersetzt?
Grüße,
Hans
Reading specs from /sw/share/avr/lib/gcc-lib/avr/3.3.2/specsZitat:
Zitat von johannuhrmann
Configured with: ./configure --target=avr --prefix=/sw/share/avr --prefix=/sw/share/avr --bindir=/sw/bin --mandir=/sw/share/man --infodir=/sw/share/info --enable-languages=c,c++ --disable-nls
Thread model: single
gcc version 3.3.2
GNU objcopy 2.14 20030612Zitat:
Zitat von johannuhrmann
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
eigentlich frisch runtergeladen. allerdings sich wäre sicher, kann man das irgendwie überprüfen?Zitat:
Zitat von johannuhrmann
sorry,.. versteh ich nicht. avr-gcc habe ich mit fink installiertZitat:
Zitat von johannuhrmann
danke für die hilfe! ich glaube ohne euch,.. hätt ich erst gar nicht angefangen
SEIDL.