Files
SyncHome/trunk/AVRProjects/ATMega168/main.lss
2023-03-13 09:01:12 +00:00

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>