Code:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000000ec 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000012 00800060 000000ec 00000180 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000001 00800072 00800072 00000192 2**0
ALLOC
3 .noinit 00000000 00800073 00800073 00000192 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000192 2**0
CONTENTS
5 .stab 000003b4 00000000 00000000 00000194 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 000005af 00000000 00000000 00000548 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 14 c0 rjmp .+40 ; 0x2a
2: 2d c0 rjmp .+90 ; 0x5e
4: 2c c0 rjmp .+88 ; 0x5e
6: 2b c0 rjmp .+86 ; 0x5e
8: 2a c0 rjmp .+84 ; 0x5e
a: 29 c0 rjmp .+82 ; 0x5e
c: 28 c0 rjmp .+80 ; 0x5e
e: 27 c0 rjmp .+78 ; 0x5e
10: 26 c0 rjmp .+76 ; 0x5e
12: 25 c0 rjmp .+74 ; 0x5e
14: 24 c0 rjmp .+72 ; 0x5e
16: 23 c0 rjmp .+70 ; 0x5e
18: 22 c0 rjmp .+68 ; 0x5e
1a: 21 c0 rjmp .+66 ; 0x5e
1c: 20 c0 rjmp .+64 ; 0x5e
1e: 1f c0 rjmp .+62 ; 0x5e
20: 1e c0 rjmp .+60 ; 0x5e
22: 1d c0 rjmp .+58 ; 0x5e
24: 1c c0 rjmp .+56 ; 0x5e
26: 1b c0 rjmp .+54 ; 0x5e
28: 1a c0 rjmp .+52 ; 0x5e
0000002a <__ctors_end>:
2a: 11 24 eor r1, r1
2c: 1f be out 0x3f, r1 ; 63
2e: cf e5 ldi r28, 0x5F ; 95
30: d2 e0 ldi r29, 0x02 ; 2
32: de bf out 0x3e, r29 ; 62
34: cd bf out 0x3d, r28 ; 61
00000036 <__do_copy_data>:
36: 10 e0 ldi r17, 0x00 ; 0
38: a0 e6 ldi r26, 0x60 ; 96
3a: b0 e0 ldi r27, 0x00 ; 0
3c: ec ee ldi r30, 0xEC ; 236
3e: f0 e0 ldi r31, 0x00 ; 0
40: 02 c0 rjmp .+4 ; 0x46
00000042 <.do_copy_data_loop>:
42: 05 90 lpm r0, Z+
44: 0d 92 st X+, r0
00000046 <.do_copy_data_start>:
46: a2 37 cpi r26, 0x72 ; 114
48: b1 07 cpc r27, r17
4a: d9 f7 brne .-10 ; 0x42
0000004c <__do_clear_bss>:
4c: 10 e0 ldi r17, 0x00 ; 0
4e: a2 e7 ldi r26, 0x72 ; 114
50: b0 e0 ldi r27, 0x00 ; 0
52: 01 c0 rjmp .+2 ; 0x56
00000054 <.do_clear_bss_loop>:
54: 1d 92 st X+, r1
00000056 <.do_clear_bss_start>:
56: a3 37 cpi r26, 0x73 ; 115
58: b1 07 cpc r27, r17
5a: e1 f7 brne .-8 ; 0x54
5c: 2f c0 rjmp .+94 ; 0xbc
0000005e <__bad_interrupt>:
5e: d0 cf rjmp .-96 ; 0x0
00000060 <USART_init>:
volatile static uint8_t data;
void USART_init(void){
UBRRH = 0;
60: 10 bc out 0x20, r1 ; 32
UBRRL = (uint8_t) USART_BAUD_SELECT;
62: 83 e0 ldi r24, 0x03 ; 3
64: 89 b9 out 0x09, r24 ; 9
/* Aktivieren des Empfängers, des Senders und des "Daten empfangen"-Interrupts */
UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
66: 88 e9 ldi r24, 0x98 ; 152
68: 8a b9 out 0x0a, r24 ; 10
/* Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit */
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
6a: 86 e8 ldi r24, 0x86 ; 134
6c: 80 bd out 0x20, r24 ; 32
data = UDR;
6e: 8c b1 in r24, 0x0c ; 12
70: 80 93 72 00 sts 0x0072, r24
74: 08 95 ret
00000076 <USART_transmit>:
}
void USART_transmit(uint8_t c){
while(!(UCSRA & (1<<UDRE)));
76: 5d 9b sbis 0x0b, 5 ; 11
78: fe cf rjmp .-4 ; 0x76
UDR = c;
7a: 8c b9 out 0x0c, r24 ; 12
7c: 08 95 ret
0000007e <USART_transmit_string>:
}
void USART_transmit_string(uint8_t *string){
7e: cf 93 push r28
80: df 93 push r29
82: ec 01 movw r28, r24
while(!(UCSRA & (1<<UDRE)));
84: 5d 9b sbis 0x0b, 5 ; 11
86: fe cf rjmp .-4 ; 0x84
while( *string){ USART_transmit (*string++); }
88: 88 81 ld r24, Y
8a: 88 23 and r24, r24
8c: 29 f0 breq .+10 ; 0x98
8e: 89 91 ld r24, Y+
90: f2 df rcall .-28 ; 0x76
92: 88 81 ld r24, Y
94: 88 23 and r24, r24
96: d9 f7 brne .-10 ; 0x8e
98: df 91 pop r29
9a: cf 91 pop r28
9c: 08 95 ret
0000009e <SIG_USART_RECV>:
}
SIGNAL( SIG_USART_RECV )
{
9e: 1f 92 push r1
a0: 0f 92 push r0
a2: 0f b6 in r0, 0x3f ; 63
a4: 0f 92 push r0
a6: 11 24 eor r1, r1
a8: 8f 93 push r24
data = UDR;
aa: 8c b1 in r24, 0x0c ; 12
ac: 80 93 72 00 sts 0x0072, r24
b0: 8f 91 pop r24
b2: 0f 90 pop r0
b4: 0f be out 0x3f, r0 ; 63
b6: 0f 90 pop r0
b8: 1f 90 pop r1
ba: 18 95 reti
000000bc <main>:
}
int main (void)
{
bc: cf e5 ldi r28, 0x5F ; 95
be: d2 e0 ldi r29, 0x02 ; 2
c0: de bf out 0x3e, r29 ; 62
c2: cd bf out 0x3d, r28 ; 61
// D A T E N R I C H T U N G :
//===============================================
// PORTA Pin: 76543210 ( 0 = Eingang/Pullup aus, 1= Ausgang/Pullup ein )
DDRA = 0b11111111; //
c4: 8f ef ldi r24, 0xFF ; 255
c6: 8a bb out 0x1a, r24 ; 26
PORTA = 0b00000000; //
c8: 1b ba out 0x1b, r1 ; 27
// PORTB Pin: 76543210 ( 0 = Eingang/Pullup aus, 1= Ausgang/Pullup ein )
DDRB = 0b00000000; //
ca: 17 ba out 0x17, r1 ; 23
PORTB = 0b00000000; //
cc: 18 ba out 0x18, r1 ; 24
// PORTC Pin: 76543210 ( 0 = Eingang/Pullup aus, 1= Ausgang/Pullup ein )
DDRC = 0b00000000; //
ce: 14 ba out 0x14, r1 ; 20
PORTC = 0b11111111; //
d0: 85 bb out 0x15, r24 ; 21
// PORTD Pin: 76543210 ( 0 = Eingang/Pullup aus, 1= Ausgang/Pullup ein )
DDRD = 0b11111111; //
d2: 81 bb out 0x11, r24 ; 17
PORTD = 0b00000000; //
d4: 12 ba out 0x12, r1 ; 18
USART_init();
d6: c4 df rcall .-120 ; 0x60
USART_transmit_string("USART INIT - OK ");
d8: 80 e6 ldi r24, 0x60 ; 96
da: 90 e0 ldi r25, 0x00 ; 0
dc: d0 df rcall .-96 ; 0x7e
sei();
de: 78 94 sei
while (1) {
PORTA = UCSRA;
e0: 8b b1 in r24, 0x0b ; 11
e2: 8b bb out 0x1b, r24 ; 27
PORTD = data;
e4: 80 91 72 00 lds r24, 0x0072
e8: 82 bb out 0x12, r24 ; 18
ea: fa cf rjmp .-12 ; 0xe0
Lesezeichen