269 lines
9.3 KiB
Plaintext
269 lines
9.3 KiB
Plaintext
|
|
main.elf: file format elf32-avr
|
|
|
|
Sections:
|
|
Idx Name Size VMA LMA File off Algn
|
|
0 .data 00000020 00800100 00000182 000001f6 2**0
|
|
CONTENTS, ALLOC, LOAD, DATA
|
|
1 .text 00000182 00000000 00000000 00000074 2**1
|
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
|
2 .comment 00000011 00000000 00000000 00000216 2**0
|
|
CONTENTS, READONLY
|
|
3 .debug_aranges 00000028 00000000 00000000 00000227 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
4 .debug_info 00000340 00000000 00000000 0000024f 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
5 .debug_abbrev 00000168 00000000 00000000 0000058f 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
6 .debug_line 00000117 00000000 00000000 000006f7 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
7 .debug_frame 00000060 00000000 00000000 00000810 2**2
|
|
CONTENTS, READONLY, DEBUGGING
|
|
8 .debug_str 00000153 00000000 00000000 00000870 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
9 .debug_loc 000000bf 00000000 00000000 000009c3 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
10 .debug_ranges 00000018 00000000 00000000 00000a82 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
|
|
Disassembly of section .text:
|
|
|
|
00000000 <__vectors>:
|
|
0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end>
|
|
4: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
8: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
10: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
14: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
18: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
1c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
20: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
24: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
28: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
2c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
30: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
34: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
38: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
3c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
40: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
44: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
48: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
4c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
50: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
54: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
58: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
5c: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
60: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
64: 0c 94 49 00 jmp 0x92 ; 0x92 <__bad_interrupt>
|
|
|
|
00000068 <__ctors_end>:
|
|
68: 11 24 eor r1, r1
|
|
6a: 1f be out 0x3f, r1 ; 63
|
|
6c: cf ef ldi r28, 0xFF ; 255
|
|
6e: d4 e0 ldi r29, 0x04 ; 4
|
|
70: de bf out 0x3e, r29 ; 62
|
|
72: cd bf out 0x3d, r28 ; 61
|
|
|
|
00000074 <__do_copy_data>:
|
|
74: 11 e0 ldi r17, 0x01 ; 1
|
|
76: a0 e0 ldi r26, 0x00 ; 0
|
|
78: b1 e0 ldi r27, 0x01 ; 1
|
|
7a: e2 e8 ldi r30, 0x82 ; 130
|
|
7c: f1 e0 ldi r31, 0x01 ; 1
|
|
7e: 02 c0 rjmp .+4 ; 0x84 <__do_copy_data+0x10>
|
|
80: 05 90 lpm r0, Z+
|
|
82: 0d 92 st X+, r0
|
|
84: a0 32 cpi r26, 0x20 ; 32
|
|
86: b1 07 cpc r27, r17
|
|
88: d9 f7 brne .-10 ; 0x80 <__do_copy_data+0xc>
|
|
8a: 0e 94 71 00 call 0xe2 ; 0xe2 <main>
|
|
8e: 0c 94 bf 00 jmp 0x17e ; 0x17e <_exit>
|
|
|
|
00000092 <__bad_interrupt>:
|
|
92: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
|
|
|
|
00000096 <uart_init>:
|
|
/* fine definizioni per il m168p*/
|
|
|
|
/* Inizializza la porta seriale */
|
|
void uart_init(void)
|
|
{
|
|
UBRRH = UBRRH_VALUE;
|
|
96: 10 92 c5 00 sts 0x00C5, r1
|
|
UBRRL = UBRRL_VALUE;
|
|
9a: 83 e3 ldi r24, 0x33 ; 51
|
|
9c: 80 93 c4 00 sts 0x00C4, r24
|
|
#if USE_2X0
|
|
UCSRA |= (1 << U2X);
|
|
#else
|
|
UCSRA &= ~(1 << U2X);
|
|
a0: e0 ec ldi r30, 0xC0 ; 192
|
|
a2: f0 e0 ldi r31, 0x00 ; 0
|
|
a4: 80 81 ld r24, Z
|
|
a6: 8d 7f andi r24, 0xFD ; 253
|
|
a8: 80 83 st Z, r24
|
|
#endif
|
|
|
|
UCSRC= _BV(UCSZ01) | _BV(UCSZ00); // 8 N 1
|
|
aa: 86 e0 ldi r24, 0x06 ; 6
|
|
ac: 80 93 c2 00 sts 0x00C2, r24
|
|
UCSRB= (1<<TXEN0);
|
|
b0: 88 e0 ldi r24, 0x08 ; 8
|
|
b2: 80 93 c1 00 sts 0x00C1, r24
|
|
b6: 08 95 ret
|
|
|
|
000000b8 <uart_putc>:
|
|
}
|
|
|
|
/* uart_putc(): scrive un carattere sulla porta seriale*/
|
|
int uart_putc(unsigned char c)
|
|
{
|
|
while (!(UCSRA & (1<<UDRE))) { /* warten bis Senden moeglich */
|
|
b8: 90 91 c0 00 lds r25, 0x00C0
|
|
bc: 95 ff sbrs r25, 5
|
|
be: fc cf rjmp .-8 ; 0xb8 <uart_putc>
|
|
}
|
|
UDR = c; /* sende Zeichen */
|
|
c0: 80 93 c6 00 sts 0x00C6, r24
|
|
return 0;
|
|
}
|
|
c4: 80 e0 ldi r24, 0x00 ; 0
|
|
c6: 90 e0 ldi r25, 0x00 ; 0
|
|
c8: 08 95 ret
|
|
|
|
000000ca <uart_puts>:
|
|
|
|
/* uart_puts(): scrive una stringa sulla porta seriale*/
|
|
void uart_puts (char *s)
|
|
{
|
|
ca: cf 93 push r28
|
|
cc: df 93 push r29
|
|
ce: ec 01 movw r28, r24
|
|
while (*s) {
|
|
d0: 89 91 ld r24, Y+
|
|
d2: 88 23 and r24, r24
|
|
d4: 19 f0 breq .+6 ; 0xdc <uart_puts+0x12>
|
|
uart_putc(*s);
|
|
d6: 0e 94 5c 00 call 0xb8 ; 0xb8 <uart_putc>
|
|
da: fa cf rjmp .-12 ; 0xd0 <uart_puts+0x6>
|
|
s++;
|
|
}
|
|
}
|
|
dc: df 91 pop r29
|
|
de: cf 91 pop r28
|
|
e0: 08 95 ret
|
|
|
|
000000e2 <main>:
|
|
|
|
/* Main - Programma principale*/
|
|
int main (void)
|
|
{
|
|
unsigned char zwischenspeicher;
|
|
DDRC = 0b00000001;
|
|
e2: 81 e0 ldi r24, 0x01 ; 1
|
|
e4: 87 b9 out 0x07, r24 ; 7
|
|
|
|
uart_init();
|
|
e6: 0e 94 4b 00 call 0x96 ; 0x96 <uart_init>
|
|
#else
|
|
//round up by default
|
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
|
#endif
|
|
|
|
__builtin_avr_delay_cycles(__ticks_dc);
|
|
ea: 2f ef ldi r18, 0xFF ; 255
|
|
ec: 3d e3 ldi r19, 0x3D ; 61
|
|
ee: 89 e4 ldi r24, 0x49 ; 73
|
|
f0: 21 50 subi r18, 0x01 ; 1
|
|
f2: 30 40 sbci r19, 0x00 ; 0
|
|
f4: 80 40 sbci r24, 0x00 ; 0
|
|
f6: e1 f7 brne .-8 ; 0xf0 <main+0xe>
|
|
f8: 00 c0 rjmp .+0 ; 0xfa <main+0x18>
|
|
fa: 00 00 nop
|
|
_delay_ms(3000);
|
|
uart_puts("CL");
|
|
fc: 80 e0 ldi r24, 0x00 ; 0
|
|
fe: 91 e0 ldi r25, 0x01 ; 1
|
|
100: 0e 94 65 00 call 0xca ; 0xca <uart_puts>
|
|
uart_puts("DSS");
|
|
104: 83 e0 ldi r24, 0x03 ; 3
|
|
106: 91 e0 ldi r25, 0x01 ; 1
|
|
108: 0e 94 65 00 call 0xca ; 0xca <uart_puts>
|
|
uart_putc(0);
|
|
10c: 80 e0 ldi r24, 0x00 ; 0
|
|
10e: 0e 94 5c 00 call 0xb8 ; 0xb8 <uart_putc>
|
|
uart_puts("TT* Love Silvia *\n");
|
|
112: 87 e0 ldi r24, 0x07 ; 7
|
|
114: 91 e0 ldi r25, 0x01 ; 1
|
|
116: 0e 94 65 00 call 0xca ; 0xca <uart_puts>
|
|
uart_puts("TRT");
|
|
11a: 8b e1 ldi r24, 0x1B ; 27
|
|
11c: 91 e0 ldi r25, 0x01 ; 1
|
|
11e: 0e 94 65 00 call 0xca ; 0xca <uart_puts>
|
|
uart_puts("TT* Love Silvia *\n");
|
|
122: 87 e0 ldi r24, 0x07 ; 7
|
|
124: 91 e0 ldi r25, 0x01 ; 1
|
|
126: 0e 94 65 00 call 0xca ; 0xca <uart_puts>
|
|
uart_puts("TRT");
|
|
12a: 8b e1 ldi r24, 0x1B ; 27
|
|
12c: 91 e0 ldi r25, 0x01 ; 1
|
|
12e: 0e 94 65 00 call 0xca ; 0xca <uart_puts>
|
|
uart_puts("TT* Love Silvia *\n");
|
|
132: 87 e0 ldi r24, 0x07 ; 7
|
|
134: 91 e0 ldi r25, 0x01 ; 1
|
|
136: 0e 94 65 00 call 0xca ; 0xca <uart_puts>
|
|
uart_puts("TRT");
|
|
13a: 8b e1 ldi r24, 0x1B ; 27
|
|
13c: 91 e0 ldi r25, 0x01 ; 1
|
|
13e: 0e 94 65 00 call 0xca ; 0xca <uart_puts>
|
|
uart_puts("TT* Love Silvia *\n");
|
|
142: 87 e0 ldi r24, 0x07 ; 7
|
|
144: 91 e0 ldi r25, 0x01 ; 1
|
|
146: 0e 94 65 00 call 0xca ; 0xca <uart_puts>
|
|
uart_puts("TRT");
|
|
14a: 8b e1 ldi r24, 0x1B ; 27
|
|
14c: 91 e0 ldi r25, 0x01 ; 1
|
|
14e: 0e 94 65 00 call 0xca ; 0xca <uart_puts>
|
|
uart_puts("TT* Love Silvia *\n");
|
|
152: 87 e0 ldi r24, 0x07 ; 7
|
|
154: 91 e0 ldi r25, 0x01 ; 1
|
|
156: 0e 94 65 00 call 0xca ; 0xca <uart_puts>
|
|
uart_puts("TRT");
|
|
15a: 8b e1 ldi r24, 0x1B ; 27
|
|
15c: 91 e0 ldi r25, 0x01 ; 1
|
|
15e: 0e 94 65 00 call 0xca ; 0xca <uart_puts>
|
|
uart_puts("TT12345678901234\n");
|
|
*/
|
|
|
|
while(1) {
|
|
zwischenspeicher = PORTC;
|
|
zwischenspeicher = zwischenspeicher ^ 0b00000001;
|
|
162: 91 e0 ldi r25, 0x01 ; 1
|
|
uart_puts("TRT");
|
|
uart_puts("TT12345678901234\n");
|
|
*/
|
|
|
|
while(1) {
|
|
zwischenspeicher = PORTC;
|
|
164: 88 b1 in r24, 0x08 ; 8
|
|
zwischenspeicher = zwischenspeicher ^ 0b00000001;
|
|
166: 89 27 eor r24, r25
|
|
PORTC = zwischenspeicher;
|
|
168: 88 b9 out 0x08, r24 ; 8
|
|
16a: 2f ef ldi r18, 0xFF ; 255
|
|
16c: 34 e3 ldi r19, 0x34 ; 52
|
|
16e: 8c e0 ldi r24, 0x0C ; 12
|
|
170: 21 50 subi r18, 0x01 ; 1
|
|
172: 30 40 sbci r19, 0x00 ; 0
|
|
174: 80 40 sbci r24, 0x00 ; 0
|
|
176: e1 f7 brne .-8 ; 0x170 <main+0x8e>
|
|
178: 00 c0 rjmp .+0 ; 0x17a <main+0x98>
|
|
17a: 00 00 nop
|
|
17c: f3 cf rjmp .-26 ; 0x164 <main+0x82>
|
|
|
|
0000017e <_exit>:
|
|
17e: f8 94 cli
|
|
|
|
00000180 <__stop_program>:
|
|
180: ff cf rjmp .-2 ; 0x180 <__stop_program>
|