- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: avr-gcc: compilieren & hex

  1. #11
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Anzeige

    Powerstation Test
    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...
    Disclaimer: none. Sue me.

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.08.2005
    Beiträge
    195
    Zitat Zitat von SprinterSB
    Hast du wirklich versucht über elf zu gehen? Direkt nach ihex ist auch aus anderen gründen nicht zu empfehlen.
    ja.
    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


    Zitat Zitat von SprinterSB
    Wozu hast du überhaupt -g an? Aus einem ihex kannste eh nicht debuggen...
    das steht so in dem artikel: > avr-gcc blinky-all.c -o blinky-all.elf -mmcu=atmega32 -g -Os
    habe es jetzt weggelassen und habe nochmal ein ihex draus gemacht. ist aber immer noch sooo lang

    SEIDL.

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    11.02.2006
    Alter
    45
    Beiträge
    48
    Zitat Zitat von Benedikt.Seidl
    > avr-gcc blinky-all.c -o blinky-all.elf -mmcu=atmega32 -g -Os
    Ich dachte, Du hast einen ATMega16 und keinen ATMega32...

    Hans
    Eintragen und Roboternetz-User in der Nähe finden: http://www.frappr.com/roboternetz

  4. #14
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    hmmm
    Das elf sieht bei mir so aus:

    avr-gcc arg.c -o arg.elf -mmcu=atmega16 -Os
    avr-objdump -d arg.elf
    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>
    Und das hex so:
    avr-objcopy -j .text -j .data -O ihex arg.elf arg.hex
    avr-objdump -D arg.hex -mavr5
    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
    Das hex codiert also rund 240 Bytes (Objektgröße) in 680 Bytes (Dateigröße).
    Disclaimer: none. Sue me.

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.08.2005
    Beiträge
    195
    Zitat Zitat von johannuhrmann
    Ich dachte, Du hast einen ATMega16 und keinen ATMega32...
    jup. war nur ein zitat von der seite.

    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.

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    11.02.2006
    Alter
    45
    Beiträge
    48
    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
    Eintragen und Roboternetz-User in der Nähe finden: http://www.frappr.com/roboternetz

  7. #17
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.08.2005
    Beiträge
    195
    Zitat Zitat von johannuhrmann
    • avr-gcc -v
    Reading specs from /sw/share/avr/lib/gcc-lib/avr/3.3.2/specs
    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

    Zitat Zitat von johannuhrmann
    • avr-objcopy -V
    GNU objcopy 2.14 20030612
    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.

    Zitat Zitat von johannuhrmann
    Welche Version der avr-libc verwendest Du?
    eigentlich frisch runtergeladen. allerdings sich wäre sicher, kann man das irgendwie überprüfen?

    Zitat Zitat von johannuhrmann
    Wie hast Du die Tools übersetzt?
    sorry,.. versteh ich nicht. avr-gcc habe ich mit fink installiert

    danke für die hilfe! ich glaube ohne euch,.. hätt ich erst gar nicht angefangen


    SEIDL.

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests