Laminator/Laminator/Laminator/Debug/Laminator.lss
2013-04-12 16:50:03 +00:00

1798 lines
65 KiB
Plaintext
Raw Blame History

Laminator.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000bea 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000048 00800060 00000bea 00000c7e 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000011 008000a8 008000a8 00000cc6 2**0
ALLOC
3 .stab 000021cc 00000000 00000000 00000cc8 2**2
CONTENTS, READONLY, DEBUGGING
4 .stabstr 00000716 00000000 00000000 00002e94 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_aranges 00000140 00000000 00000000 000035b0 2**3
CONTENTS, READONLY, DEBUGGING
6 .debug_info 000012b4 00000000 00000000 000036f0 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_abbrev 000007e6 00000000 00000000 000049a4 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_line 00000b66 00000000 00000000 0000518a 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_frame 000001c0 00000000 00000000 00005cf0 2**2
CONTENTS, READONLY, DEBUGGING
10 .debug_str 000003ee 00000000 00000000 00005eb0 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_loc 000009cc 00000000 00000000 0000629e 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_ranges 00000040 00000000 00000000 00006c6a 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end>
2: 2c c0 rjmp .+88 ; 0x5c <__bad_interrupt>
4: 2b c0 rjmp .+86 ; 0x5c <__bad_interrupt>
6: 2a c0 rjmp .+84 ; 0x5c <__bad_interrupt>
8: 29 c0 rjmp .+82 ; 0x5c <__bad_interrupt>
a: 28 c0 rjmp .+80 ; 0x5c <__bad_interrupt>
c: 27 c0 rjmp .+78 ; 0x5c <__bad_interrupt>
e: 26 c0 rjmp .+76 ; 0x5c <__bad_interrupt>
10: 25 c0 rjmp .+74 ; 0x5c <__bad_interrupt>
12: 24 c0 rjmp .+72 ; 0x5c <__bad_interrupt>
14: 23 c0 rjmp .+70 ; 0x5c <__bad_interrupt>
16: 30 c0 rjmp .+96 ; 0x78 <__vector_11>
18: 21 c0 rjmp .+66 ; 0x5c <__bad_interrupt>
1a: 20 c0 rjmp .+64 ; 0x5c <__bad_interrupt>
1c: 1f c0 rjmp .+62 ; 0x5c <__bad_interrupt>
1e: 1e c0 rjmp .+60 ; 0x5c <__bad_interrupt>
20: 1d c0 rjmp .+58 ; 0x5c <__bad_interrupt>
22: 1c c0 rjmp .+56 ; 0x5c <__bad_interrupt>
24: 1b c0 rjmp .+54 ; 0x5c <__bad_interrupt>
00000026 <__ctors_end>:
26: 11 24 eor r1, r1
28: 1f be out 0x3f, r1 ; 63
2a: cf e5 ldi r28, 0x5F ; 95
2c: d4 e0 ldi r29, 0x04 ; 4
2e: de bf out 0x3e, r29 ; 62
30: cd bf out 0x3d, r28 ; 61
00000032 <__do_copy_data>:
32: 10 e0 ldi r17, 0x00 ; 0
34: a0 e6 ldi r26, 0x60 ; 96
36: b0 e0 ldi r27, 0x00 ; 0
38: ea ee ldi r30, 0xEA ; 234
3a: fb e0 ldi r31, 0x0B ; 11
3c: 02 c0 rjmp .+4 ; 0x42 <__SREG__+0x3>
3e: 05 90 lpm r0, Z+
40: 0d 92 st X+, r0
42: a8 3a cpi r26, 0xA8 ; 168
44: b1 07 cpc r27, r17
46: d9 f7 brne .-10 ; 0x3e <__SP_H__>
00000048 <__do_clear_bss>:
48: 10 e0 ldi r17, 0x00 ; 0
4a: a8 ea ldi r26, 0xA8 ; 168
4c: b0 e0 ldi r27, 0x00 ; 0
4e: 01 c0 rjmp .+2 ; 0x52 <.do_clear_bss_start>
00000050 <.do_clear_bss_loop>:
50: 1d 92 st X+, r1
00000052 <.do_clear_bss_start>:
52: a9 3b cpi r26, 0xB9 ; 185
54: b1 07 cpc r27, r17
56: e1 f7 brne .-8 ; 0x50 <.do_clear_bss_loop>
58: be d0 rcall .+380 ; 0x1d6 <main>
5a: c5 c5 rjmp .+2954 ; 0xbe6 <_exit>
0000005c <__bad_interrupt>:
5c: d1 cf rjmp .-94 ; 0x0 <__vectors>
0000005e <uart_putchar>:
}
}
int uart_putchar(char c, FILE *stream)
//############################################################################
{
5e: cf 93 push r28
60: c8 2f mov r28, r24
if (c == '\n')
62: 8a 30 cpi r24, 0x0A ; 10
64: 11 f4 brne .+4 ; 0x6a <uart_putchar+0xc>
uart_putchar('\r', stream);
66: 8d e0 ldi r24, 0x0D ; 13
68: fa df rcall .-12 ; 0x5e <uart_putchar>
//Warten solange bis Zeichen gesendet wurde
loop_until_bit_is_set(UCSRA, UDRE);
6a: 5d 9b sbis 0x0b, 5 ; 11
6c: fe cf rjmp .-4 ; 0x6a <uart_putchar+0xc>
//Ausgabe des Zeichens
UDR = c;
6e: cc b9 out 0x0c, r28 ; 12
return (0);
}
70: 80 e0 ldi r24, 0x00 ; 0
72: 90 e0 ldi r25, 0x00 ; 0
74: cf 91 pop r28
76: 08 95 ret
00000078 <__vector_11>:
int uart_putchar(char c, FILE *stream);
static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE);
ISR(USART_RXC_vect) {
78: 1f 92 push r1
7a: 0f 92 push r0
7c: 0f b6 in r0, 0x3f ; 63
7e: 0f 92 push r0
80: 11 24 eor r1, r1
82: 2f 93 push r18
84: 3f 93 push r19
86: 4f 93 push r20
88: 5f 93 push r21
8a: 6f 93 push r22
8c: 7f 93 push r23
8e: 8f 93 push r24
90: 9f 93 push r25
92: ef 93 push r30
94: ff 93 push r31
unsigned char nextChar;
// Daten aus dem Puffer lesen
nextChar = UDR;
96: 8c b1 in r24, 0x0c ; 12
if( nextChar != '\n' && nextChar != '\r' && uart_str_count < UART_MAXSTRLEN ) {
98: 8a 30 cpi r24, 0x0A ; 10
9a: 99 f0 breq .+38 ; 0xc2 <__vector_11+0x4a>
9c: 8d 30 cpi r24, 0x0D ; 13
9e: 89 f0 breq .+34 ; 0xc2 <__vector_11+0x4a>
a0: 90 91 b2 00 lds r25, 0x00B2
a4: 9a 30 cpi r25, 0x0A ; 10
a6: 68 f4 brcc .+26 ; 0xc2 <__vector_11+0x4a>
uart_string[uart_str_count] = nextChar;
a8: 90 91 b2 00 lds r25, 0x00B2
ac: e8 ea ldi r30, 0xA8 ; 168
ae: f0 e0 ldi r31, 0x00 ; 0
b0: e9 0f add r30, r25
b2: f1 1d adc r31, r1
b4: 80 83 st Z, r24
uart_str_count++;
b6: 80 91 b2 00 lds r24, 0x00B2
ba: 8f 5f subi r24, 0xFF ; 255
bc: 80 93 b2 00 sts 0x00B2, r24
c0: 3c c0 rjmp .+120 ; 0x13a <__vector_11+0xc2>
} else {
if(uart_string[0] == 't') {
c2: 80 91 a8 00 lds r24, 0x00A8
c6: 84 37 cpi r24, 0x74 ; 116
c8: 29 f5 brne .+74 ; 0x114 <__vector_11+0x9c>
sollwert = (uart_string[1]-48)*100+(uart_string[2]-48)*10+(uart_string[3]-48);
ca: 40 91 a9 00 lds r20, 0x00A9
ce: 70 91 aa 00 lds r23, 0x00AA
d2: 60 91 ab 00 lds r22, 0x00AB
d6: 50 e0 ldi r21, 0x00 ; 0
d8: 24 e6 ldi r18, 0x64 ; 100
da: 30 e0 ldi r19, 0x00 ; 0
dc: 42 9f mul r20, r18
de: c0 01 movw r24, r0
e0: 43 9f mul r20, r19
e2: 90 0d add r25, r0
e4: 52 9f mul r21, r18
e6: 90 0d add r25, r0
e8: 11 24 eor r1, r1
ea: 27 2f mov r18, r23
ec: 30 e0 ldi r19, 0x00 ; 0
ee: 22 0f add r18, r18
f0: 33 1f adc r19, r19
f2: a9 01 movw r20, r18
f4: 44 0f add r20, r20
f6: 55 1f adc r21, r21
f8: 44 0f add r20, r20
fa: 55 1f adc r21, r21
fc: 24 0f add r18, r20
fe: 35 1f adc r19, r21
100: 82 0f add r24, r18
102: 93 1f adc r25, r19
104: 86 0f add r24, r22
106: 91 1d adc r25, r1
108: 80 5d subi r24, 0xD0 ; 208
10a: 94 41 sbci r25, 0x14 ; 20
10c: 90 93 98 00 sts 0x0098, r25
110: 80 93 97 00 sts 0x0097, r24
}
if(uart_string[0] == 'm') {
114: 80 91 a8 00 lds r24, 0x00A8
118: 8d 36 cpi r24, 0x6D ; 109
11a: 69 f4 brne .+26 ; 0x136 <__vector_11+0xbe>
motor = (uart_string[1]-48)*10+(uart_string[2]-48);
11c: 80 91 a9 00 lds r24, 0x00A9
120: 90 91 aa 00 lds r25, 0x00AA
124: 90 51 subi r25, 0x10 ; 16
126: 88 0f add r24, r24
128: 28 2f mov r18, r24
12a: 22 0f add r18, r18
12c: 22 0f add r18, r18
12e: 82 0f add r24, r18
130: 89 0f add r24, r25
132: 80 93 96 00 sts 0x0096, r24
}
uart_str_count = 0;
136: 10 92 b2 00 sts 0x00B2, r1
}
}
13a: ff 91 pop r31
13c: ef 91 pop r30
13e: 9f 91 pop r25
140: 8f 91 pop r24
142: 7f 91 pop r23
144: 6f 91 pop r22
146: 5f 91 pop r21
148: 4f 91 pop r20
14a: 3f 91 pop r19
14c: 2f 91 pop r18
14e: 0f 90 pop r0
150: 0f be out 0x3f, r0 ; 63
152: 0f 90 pop r0
154: 1f 90 pop r1
156: 18 95 reti
00000158 <UART_Init>:
return (0);
}
void UART_Init (void) {
//8N1
UCSRC = (1<<URSEL) | (1 << UCSZ1) |(1 << UCSZ0);
158: 86 e8 ldi r24, 0x86 ; 134
15a: 80 bd out 0x20, r24 ; 32
//Enable TXEN im Register UCR TX-Data Enable
UCSRB |= (1<<RXEN) | (1<<TXEN) | (1<<RXCIE);
15c: 8a b1 in r24, 0x0a ; 10
15e: 88 69 ori r24, 0x98 ; 152
160: 8a b9 out 0x0a, r24 ; 10
//Teiler wird gesetzt
UBRRL=(F_CPU / (BAUD_RATE * 16L) - 1);
162: 83 e3 ldi r24, 0x33 ; 51
164: 89 b9 out 0x09, r24 ; 9
//<2F>ffnet einen Kanal f<>r printf (STDOUT)
stdout = &mystdout;
166: 89 e9 ldi r24, 0x99 ; 153
168: 90 e0 ldi r25, 0x00 ; 0
16a: 90 93 b6 00 sts 0x00B6, r25
16e: 80 93 b5 00 sts 0x00B5, r24
}
172: 08 95 ret
00000174 <adcinit>:
void adcinit() {
// ADC initialization
// ADC Clock frequency: 62,500 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE;
174: 80 e4 ldi r24, 0x40 ; 64
176: 87 b9 out 0x07, r24 ; 7
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
178: 87 e8 ldi r24, 0x87 ; 135
17a: 86 b9 out 0x06, r24 ; 6
SFIOR=(0<<ACME);
17c: 10 be out 0x30, r1 ; 48
}
17e: 08 95 ret
00000180 <read_adc>:
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
180: 80 64 ori r24, 0x40 ; 64
182: 87 b9 out 0x07, r24 ; 7
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
184: 8a e1 ldi r24, 0x1A ; 26
186: 8a 95 dec r24
188: f1 f7 brne .-4 ; 0x186 <read_adc+0x6>
18a: 00 c0 rjmp .+0 ; 0x18c <read_adc+0xc>
// Delay needed for the stabilization of the ADC input voltage
_delay_us(10);
// Start the AD conversion
ADCSRA|=(1<<ADSC);
18c: 36 9a sbi 0x06, 6 ; 6
// Wait for the AD conversion to complete
while ((ADCSRA & (1<<ADIF))==0);
18e: 34 9b sbis 0x06, 4 ; 6
190: fe cf rjmp .-4 ; 0x18e <read_adc+0xe>
ADCSRA|=(1<<ADIF);
192: 34 9a sbi 0x06, 4 ; 6
return ADCW;
194: 84 b1 in r24, 0x04 ; 4
196: 95 b1 in r25, 0x05 ; 5
}
198: 08 95 ret
0000019a <convert2degree>:
static const float c2=300;
static const float v2=53; //ADC-Wert=165 @ 202<30>C
float m=((c1-c2)/(v1-v2));
return((int)((m*(float)value)+(-m*v1)+c1));
19a: 9c 01 movw r18, r24
19c: b9 01 movw r22, r18
19e: 88 27 eor r24, r24
1a0: 77 fd sbrc r23, 7
1a2: 80 95 com r24
1a4: 98 2f mov r25, r24
1a6: 4a d1 rcall .+660 ; 0x43c <__floatsisf>
1a8: 2b e0 ldi r18, 0x0B ; 11
1aa: 34 eb ldi r19, 0xB4 ; 180
1ac: 40 e4 ldi r20, 0x40 ; 64
1ae: 50 ec ldi r21, 0xC0 ; 192
1b0: d1 d1 rcall .+930 ; 0x554 <__mulsf3>
1b2: 2c e8 ldi r18, 0x8C ; 140
1b4: 3a ec ldi r19, 0xCA ; 202
1b6: 48 ed ldi r20, 0xD8 ; 216
1b8: 53 e4 ldi r21, 0x43 ; 67
1ba: a9 d0 rcall .+338 ; 0x30e <__addsf3>
1bc: 20 e0 ldi r18, 0x00 ; 0
1be: 30 e0 ldi r19, 0x00 ; 0
1c0: 40 ed ldi r20, 0xD0 ; 208
1c2: 51 e4 ldi r21, 0x41 ; 65
1c4: a4 d0 rcall .+328 ; 0x30e <__addsf3>
1c6: 07 d1 rcall .+526 ; 0x3d6 <__fixsfsi>
//return((int)((-m*v1)+c1));
}
1c8: 86 2f mov r24, r22
1ca: 97 2f mov r25, r23
1cc: 08 95 ret
000001ce <uart_getc>:
uint8_t uart_getc(void)
{
while (!(UCSRA & (1<<RXC))) // warten bis Zeichen verfuegbar
1ce: 5f 9b sbis 0x0b, 7 ; 11
1d0: fe cf rjmp .-4 ; 0x1ce <uart_getc>
;
return UDR; // Zeichen aus UDR an Aufrufer zurueckgeben
1d2: 8c b1 in r24, 0x0c ; 12
}
1d4: 08 95 ret
000001d6 <main>:
int pwm = 0;
int pwm_ctr = 0;
int mpwm = 0;
uint8_t hon = 0;
uint8_t mon = 0;
UART_Init();
1d6: c0 df rcall .-128 ; 0x158 <UART_Init>
adcinit();
1d8: cd df rcall .-102 ; 0x174 <adcinit>
sei();
1da: 78 94 sei
printf("########### Bootup #########\n");
1dc: 80 e6 ldi r24, 0x60 ; 96
1de: 90 e0 ldi r25, 0x00 ; 0
1e0: 2e d2 rcall .+1116 ; 0x63e <puts>
DDRB |= (1<<PB2);
1e2: ba 9a sbi 0x17, 2 ; 23
while(1)
{
val=read_adc(0);
1e4: 80 e0 ldi r24, 0x00 ; 0
1e6: cc df rcall .-104 ; 0x180 <read_adc>
1e8: e8 2e mov r14, r24
1ea: f9 2e mov r15, r25
pwm=sollwert-convert2degree(val);
1ec: c0 91 97 00 lds r28, 0x0097
1f0: d0 91 98 00 lds r29, 0x0098
1f4: c7 01 movw r24, r14
1f6: d1 df rcall .-94 ; 0x19a <convert2degree>
1f8: ac 01 movw r20, r24
1fa: c8 1b sub r28, r24
1fc: d9 0b sbc r29, r25
int main(void)
{
int val;
int pwm = 0;
int pwm_ctr = 0;
int mpwm = 0;
1fe: cc 24 eor r12, r12
200: dd 24 eor r13, r13
DDRB |= (1<<PB2);
while(1)
{
val=read_adc(0);
pwm=sollwert-convert2degree(val);
if (pwm_ctr++ >= 20) {
202: 01 e0 ldi r16, 0x01 ; 1
204: 10 e0 ldi r17, 0x00 ; 0
printf("########### Bootup #########\n");
DDRB |= (1<<PB2);
while(1)
{
val=read_adc(0);
pwm=sollwert-convert2degree(val);
206: 88 24 eor r8, r8
208: 99 24 eor r9, r9
mon = 1;
} else {
mon = 0;
}
if (pwm<=pwm_ctr || val<30 || val>1000) { //pwm, detect Sensor contakt break/short
hon = 0;
20a: bb 24 eor r11, r11
20c: aa 24 eor r10, r10
20e: a3 94 inc r10
} else {
hon = 1;
}
printf("%d %d %d %d %d %d %d %d\n", pwm, pwm_ctr, val, convert2degree(val),sollwert,motor,hon,mon);
210: 0f 2e mov r0, r31
212: fd e7 ldi r31, 0x7D ; 125
214: 6f 2e mov r6, r31
216: f0 e0 ldi r31, 0x00 ; 0
218: 7f 2e mov r7, r31
21a: f0 2d mov r31, r0
21c: 01 c0 rjmp .+2 ; 0x220 <main+0x4a>
while(1)
{
val=read_adc(0);
pwm=sollwert-convert2degree(val);
if (pwm_ctr++ >= 20) {
pwm_ctr=0;
21e: 84 01 movw r16, r8
printf("########### Bootup #########\n");
DDRB |= (1<<PB2);
while(1)
{
val=read_adc(0);
pwm=sollwert-convert2degree(val);
220: dd 23 and r29, r29
222: 0c f4 brge .+2 ; 0x226 <main+0x50>
224: e4 01 movw r28, r8
pwm_ctr=0;
}
if (pwm < 0) {
pwm = 0;
}
if(mpwm++ > 10) {
226: 8b e0 ldi r24, 0x0B ; 11
228: c8 16 cp r12, r24
22a: d1 04 cpc r13, r1
22c: 24 f4 brge .+8 ; 0x236 <main+0x60>
22e: 08 94 sec
230: c1 1c adc r12, r1
232: d1 1c adc r13, r1
234: 01 c0 rjmp .+2 ; 0x238 <main+0x62>
mpwm=0;
236: 64 01 movw r12, r8
}
if(mpwm-(10-motor) >= 0) {
238: 80 91 96 00 lds r24, 0x0096
23c: 90 e0 ldi r25, 0x00 ; 0
23e: 0a 97 sbiw r24, 0x0a ; 10
240: bc 01 movw r22, r24
242: 6c 0d add r22, r12
244: 7d 1d adc r23, r13
mon = 1;
} else {
mon = 0;
}
if (pwm<=pwm_ctr || val<30 || val>1000) { //pwm, detect Sensor contakt break/short
246: 0c 17 cp r16, r28
248: 1d 07 cpc r17, r29
24a: 64 f4 brge .+24 ; 0x264 <main+0x8e>
24c: 9e e1 ldi r25, 0x1E ; 30
24e: e9 16 cp r14, r25
250: f1 04 cpc r15, r1
252: 54 f0 brlt .+20 ; 0x268 <main+0x92>
hon = 0;
254: 2a 2d mov r18, r10
256: a9 ee ldi r26, 0xE9 ; 233
258: ea 16 cp r14, r26
25a: a3 e0 ldi r26, 0x03 ; 3
25c: fa 06 cpc r15, r26
25e: 2c f0 brlt .+10 ; 0x26a <main+0x94>
260: 2b 2d mov r18, r11
262: 03 c0 rjmp .+6 ; 0x26a <main+0x94>
264: 2b 2d mov r18, r11
266: 01 c0 rjmp .+2 ; 0x26a <main+0x94>
268: 2b 2d mov r18, r11
} else {
hon = 1;
}
printf("%d %d %d %d %d %d %d %d\n", pwm, pwm_ctr, val, convert2degree(val),sollwert,motor,hon,mon);
26a: 80 91 97 00 lds r24, 0x0097
26e: 90 91 98 00 lds r25, 0x0098
272: 30 91 96 00 lds r19, 0x0096
276: ed b7 in r30, 0x3d ; 61
278: fe b7 in r31, 0x3e ; 62
27a: 72 97 sbiw r30, 0x12 ; 18
27c: 0f b6 in r0, 0x3f ; 63
27e: f8 94 cli
280: fe bf out 0x3e, r31 ; 62
282: 0f be out 0x3f, r0 ; 63
284: ed bf out 0x3d, r30 ; 61
286: 31 96 adiw r30, 0x01 ; 1
288: ad b7 in r26, 0x3d ; 61
28a: be b7 in r27, 0x3e ; 62
28c: 12 96 adiw r26, 0x02 ; 2
28e: 7c 92 st X, r7
290: 6e 92 st -X, r6
292: 11 97 sbiw r26, 0x01 ; 1
294: d3 83 std Z+3, r29 ; 0x03
296: c2 83 std Z+2, r28 ; 0x02
298: 15 83 std Z+5, r17 ; 0x05
29a: 04 83 std Z+4, r16 ; 0x04
29c: f7 82 std Z+7, r15 ; 0x07
29e: e6 82 std Z+6, r14 ; 0x06
2a0: 51 87 std Z+9, r21 ; 0x09
2a2: 40 87 std Z+8, r20 ; 0x08
2a4: 93 87 std Z+11, r25 ; 0x0b
2a6: 82 87 std Z+10, r24 ; 0x0a
2a8: 34 87 std Z+12, r19 ; 0x0c
2aa: 15 86 std Z+13, r1 ; 0x0d
2ac: 26 87 std Z+14, r18 ; 0x0e
2ae: 17 86 std Z+15, r1 ; 0x0f
2b0: 87 2f mov r24, r23
2b2: 80 95 com r24
2b4: 88 1f adc r24, r24
2b6: 88 27 eor r24, r24
2b8: 88 1f adc r24, r24
2ba: 80 8b std Z+16, r24 ; 0x10
2bc: 11 8a std Z+17, r1 ; 0x11
2be: ad d1 rcall .+858 ; 0x61a <printf>
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
2c0: 8f ef ldi r24, 0xFF ; 255
2c2: 90 e7 ldi r25, 0x70 ; 112
2c4: a2 e0 ldi r26, 0x02 ; 2
2c6: 81 50 subi r24, 0x01 ; 1
2c8: 90 40 sbci r25, 0x00 ; 0
2ca: a0 40 sbci r26, 0x00 ; 0
2cc: e1 f7 brne .-8 ; 0x2c6 <main+0xf0>
2ce: 00 c0 rjmp .+0 ; 0x2d0 <main+0xfa>
2d0: 00 00 nop
sei();
printf("########### Bootup #########\n");
DDRB |= (1<<PB2);
while(1)
{
val=read_adc(0);
2d2: ad b7 in r26, 0x3d ; 61
2d4: be b7 in r27, 0x3e ; 62
2d6: 52 96 adiw r26, 0x12 ; 18
2d8: 0f b6 in r0, 0x3f ; 63
2da: f8 94 cli
2dc: be bf out 0x3e, r27 ; 62
2de: 0f be out 0x3f, r0 ; 63
2e0: ad bf out 0x3d, r26 ; 61
2e2: 8b 2d mov r24, r11
2e4: 4d df rcall .-358 ; 0x180 <read_adc>
2e6: e8 2e mov r14, r24
2e8: f9 2e mov r15, r25
pwm=sollwert-convert2degree(val);
2ea: c0 91 97 00 lds r28, 0x0097
2ee: d0 91 98 00 lds r29, 0x0098
2f2: c7 01 movw r24, r14
2f4: 52 df rcall .-348 ; 0x19a <convert2degree>
2f6: ac 01 movw r20, r24
2f8: c8 1b sub r28, r24
2fa: d9 0b sbc r29, r25
if (pwm_ctr++ >= 20) {
2fc: c8 01 movw r24, r16
2fe: 01 96 adiw r24, 0x01 ; 1
300: 04 31 cpi r16, 0x14 ; 20
302: 11 05 cpc r17, r1
304: 0c f0 brlt .+2 ; 0x308 <main+0x132>
306: 8b cf rjmp .-234 ; 0x21e <main+0x48>
308: 8c 01 movw r16, r24
30a: 8a cf rjmp .-236 ; 0x220 <main+0x4a>
0000030c <__subsf3>:
30c: 50 58 subi r21, 0x80 ; 128
0000030e <__addsf3>:
30e: bb 27 eor r27, r27
310: aa 27 eor r26, r26
312: 0e d0 rcall .+28 ; 0x330 <__addsf3x>
314: e5 c0 rjmp .+458 ; 0x4e0 <__fp_round>
316: d6 d0 rcall .+428 ; 0x4c4 <__fp_pscA>
318: 30 f0 brcs .+12 ; 0x326 <__addsf3+0x18>
31a: db d0 rcall .+438 ; 0x4d2 <__fp_pscB>
31c: 20 f0 brcs .+8 ; 0x326 <__addsf3+0x18>
31e: 31 f4 brne .+12 ; 0x32c <__addsf3+0x1e>
320: 9f 3f cpi r25, 0xFF ; 255
322: 11 f4 brne .+4 ; 0x328 <__addsf3+0x1a>
324: 1e f4 brtc .+6 ; 0x32c <__addsf3+0x1e>
326: cb c0 rjmp .+406 ; 0x4be <__fp_nan>
328: 0e f4 brtc .+2 ; 0x32c <__addsf3+0x1e>
32a: e0 95 com r30
32c: e7 fb bst r30, 7
32e: c1 c0 rjmp .+386 ; 0x4b2 <__fp_inf>
00000330 <__addsf3x>:
330: e9 2f mov r30, r25
332: e7 d0 rcall .+462 ; 0x502 <__fp_split3>
334: 80 f3 brcs .-32 ; 0x316 <__addsf3+0x8>
336: ba 17 cp r27, r26
338: 62 07 cpc r22, r18
33a: 73 07 cpc r23, r19
33c: 84 07 cpc r24, r20
33e: 95 07 cpc r25, r21
340: 18 f0 brcs .+6 ; 0x348 <__addsf3x+0x18>
342: 71 f4 brne .+28 ; 0x360 <__addsf3x+0x30>
344: 9e f5 brtc .+102 ; 0x3ac <__addsf3x+0x7c>
346: ff c0 rjmp .+510 ; 0x546 <__fp_zero>
348: 0e f4 brtc .+2 ; 0x34c <__addsf3x+0x1c>
34a: e0 95 com r30
34c: 0b 2e mov r0, r27
34e: ba 2f mov r27, r26
350: a0 2d mov r26, r0
352: 0b 01 movw r0, r22
354: b9 01 movw r22, r18
356: 90 01 movw r18, r0
358: 0c 01 movw r0, r24
35a: ca 01 movw r24, r20
35c: a0 01 movw r20, r0
35e: 11 24 eor r1, r1
360: ff 27 eor r31, r31
362: 59 1b sub r21, r25
364: 99 f0 breq .+38 ; 0x38c <__addsf3x+0x5c>
366: 59 3f cpi r21, 0xF9 ; 249
368: 50 f4 brcc .+20 ; 0x37e <__addsf3x+0x4e>
36a: 50 3e cpi r21, 0xE0 ; 224
36c: 68 f1 brcs .+90 ; 0x3c8 <__addsf3x+0x98>
36e: 1a 16 cp r1, r26
370: f0 40 sbci r31, 0x00 ; 0
372: a2 2f mov r26, r18
374: 23 2f mov r18, r19
376: 34 2f mov r19, r20
378: 44 27 eor r20, r20
37a: 58 5f subi r21, 0xF8 ; 248
37c: f3 cf rjmp .-26 ; 0x364 <__addsf3x+0x34>
37e: 46 95 lsr r20
380: 37 95 ror r19
382: 27 95 ror r18
384: a7 95 ror r26
386: f0 40 sbci r31, 0x00 ; 0
388: 53 95 inc r21
38a: c9 f7 brne .-14 ; 0x37e <__addsf3x+0x4e>
38c: 7e f4 brtc .+30 ; 0x3ac <__addsf3x+0x7c>
38e: 1f 16 cp r1, r31
390: ba 0b sbc r27, r26
392: 62 0b sbc r22, r18
394: 73 0b sbc r23, r19
396: 84 0b sbc r24, r20
398: ba f0 brmi .+46 ; 0x3c8 <__addsf3x+0x98>
39a: 91 50 subi r25, 0x01 ; 1
39c: a1 f0 breq .+40 ; 0x3c6 <__addsf3x+0x96>
39e: ff 0f add r31, r31
3a0: bb 1f adc r27, r27
3a2: 66 1f adc r22, r22
3a4: 77 1f adc r23, r23
3a6: 88 1f adc r24, r24
3a8: c2 f7 brpl .-16 ; 0x39a <__addsf3x+0x6a>
3aa: 0e c0 rjmp .+28 ; 0x3c8 <__addsf3x+0x98>
3ac: ba 0f add r27, r26
3ae: 62 1f adc r22, r18
3b0: 73 1f adc r23, r19
3b2: 84 1f adc r24, r20
3b4: 48 f4 brcc .+18 ; 0x3c8 <__addsf3x+0x98>
3b6: 87 95 ror r24
3b8: 77 95 ror r23
3ba: 67 95 ror r22
3bc: b7 95 ror r27
3be: f7 95 ror r31
3c0: 9e 3f cpi r25, 0xFE ; 254
3c2: 08 f0 brcs .+2 ; 0x3c6 <__addsf3x+0x96>
3c4: b3 cf rjmp .-154 ; 0x32c <__addsf3+0x1e>
3c6: 93 95 inc r25
3c8: 88 0f add r24, r24
3ca: 08 f0 brcs .+2 ; 0x3ce <__addsf3x+0x9e>
3cc: 99 27 eor r25, r25
3ce: ee 0f add r30, r30
3d0: 97 95 ror r25
3d2: 87 95 ror r24
3d4: 08 95 ret
000003d6 <__fixsfsi>:
3d6: 04 d0 rcall .+8 ; 0x3e0 <__fixunssfsi>
3d8: 68 94 set
3da: b1 11 cpse r27, r1
3dc: b5 c0 rjmp .+362 ; 0x548 <__fp_szero>
3de: 08 95 ret
000003e0 <__fixunssfsi>:
3e0: 98 d0 rcall .+304 ; 0x512 <__fp_splitA>
3e2: 88 f0 brcs .+34 ; 0x406 <__fixunssfsi+0x26>
3e4: 9f 57 subi r25, 0x7F ; 127
3e6: 90 f0 brcs .+36 ; 0x40c <__fixunssfsi+0x2c>
3e8: b9 2f mov r27, r25
3ea: 99 27 eor r25, r25
3ec: b7 51 subi r27, 0x17 ; 23
3ee: a0 f0 brcs .+40 ; 0x418 <__fixunssfsi+0x38>
3f0: d1 f0 breq .+52 ; 0x426 <__fixunssfsi+0x46>
3f2: 66 0f add r22, r22
3f4: 77 1f adc r23, r23
3f6: 88 1f adc r24, r24
3f8: 99 1f adc r25, r25
3fa: 1a f0 brmi .+6 ; 0x402 <__fixunssfsi+0x22>
3fc: ba 95 dec r27
3fe: c9 f7 brne .-14 ; 0x3f2 <__fixunssfsi+0x12>
400: 12 c0 rjmp .+36 ; 0x426 <__fixunssfsi+0x46>
402: b1 30 cpi r27, 0x01 ; 1
404: 81 f0 breq .+32 ; 0x426 <__fixunssfsi+0x46>
406: 9f d0 rcall .+318 ; 0x546 <__fp_zero>
408: b1 e0 ldi r27, 0x01 ; 1
40a: 08 95 ret
40c: 9c c0 rjmp .+312 ; 0x546 <__fp_zero>
40e: 67 2f mov r22, r23
410: 78 2f mov r23, r24
412: 88 27 eor r24, r24
414: b8 5f subi r27, 0xF8 ; 248
416: 39 f0 breq .+14 ; 0x426 <__fixunssfsi+0x46>
418: b9 3f cpi r27, 0xF9 ; 249
41a: cc f3 brlt .-14 ; 0x40e <__fixunssfsi+0x2e>
41c: 86 95 lsr r24
41e: 77 95 ror r23
420: 67 95 ror r22
422: b3 95 inc r27
424: d9 f7 brne .-10 ; 0x41c <__fixunssfsi+0x3c>
426: 3e f4 brtc .+14 ; 0x436 <__fixunssfsi+0x56>
428: 90 95 com r25
42a: 80 95 com r24
42c: 70 95 com r23
42e: 61 95 neg r22
430: 7f 4f sbci r23, 0xFF ; 255
432: 8f 4f sbci r24, 0xFF ; 255
434: 9f 4f sbci r25, 0xFF ; 255
436: 08 95 ret
00000438 <__floatunsisf>:
438: e8 94 clt
43a: 09 c0 rjmp .+18 ; 0x44e <__floatsisf+0x12>
0000043c <__floatsisf>:
43c: 97 fb bst r25, 7
43e: 3e f4 brtc .+14 ; 0x44e <__floatsisf+0x12>
440: 90 95 com r25
442: 80 95 com r24
444: 70 95 com r23
446: 61 95 neg r22
448: 7f 4f sbci r23, 0xFF ; 255
44a: 8f 4f sbci r24, 0xFF ; 255
44c: 9f 4f sbci r25, 0xFF ; 255
44e: 99 23 and r25, r25
450: a9 f0 breq .+42 ; 0x47c <__stack+0x1d>
452: f9 2f mov r31, r25
454: 96 e9 ldi r25, 0x96 ; 150
456: bb 27 eor r27, r27
458: 93 95 inc r25
45a: f6 95 lsr r31
45c: 87 95 ror r24
45e: 77 95 ror r23
460: 67 95 ror r22
462: b7 95 ror r27
464: f1 11 cpse r31, r1
466: f8 cf rjmp .-16 ; 0x458 <__floatsisf+0x1c>
468: fa f4 brpl .+62 ; 0x4a8 <__stack+0x49>
46a: bb 0f add r27, r27
46c: 11 f4 brne .+4 ; 0x472 <__stack+0x13>
46e: 60 ff sbrs r22, 0
470: 1b c0 rjmp .+54 ; 0x4a8 <__stack+0x49>
472: 6f 5f subi r22, 0xFF ; 255
474: 7f 4f sbci r23, 0xFF ; 255
476: 8f 4f sbci r24, 0xFF ; 255
478: 9f 4f sbci r25, 0xFF ; 255
47a: 16 c0 rjmp .+44 ; 0x4a8 <__stack+0x49>
47c: 88 23 and r24, r24
47e: 11 f0 breq .+4 ; 0x484 <__stack+0x25>
480: 96 e9 ldi r25, 0x96 ; 150
482: 11 c0 rjmp .+34 ; 0x4a6 <__stack+0x47>
484: 77 23 and r23, r23
486: 21 f0 breq .+8 ; 0x490 <__stack+0x31>
488: 9e e8 ldi r25, 0x8E ; 142
48a: 87 2f mov r24, r23
48c: 76 2f mov r23, r22
48e: 05 c0 rjmp .+10 ; 0x49a <__stack+0x3b>
490: 66 23 and r22, r22
492: 71 f0 breq .+28 ; 0x4b0 <__stack+0x51>
494: 96 e8 ldi r25, 0x86 ; 134
496: 86 2f mov r24, r22
498: 70 e0 ldi r23, 0x00 ; 0
49a: 60 e0 ldi r22, 0x00 ; 0
49c: 2a f0 brmi .+10 ; 0x4a8 <__stack+0x49>
49e: 9a 95 dec r25
4a0: 66 0f add r22, r22
4a2: 77 1f adc r23, r23
4a4: 88 1f adc r24, r24
4a6: da f7 brpl .-10 ; 0x49e <__stack+0x3f>
4a8: 88 0f add r24, r24
4aa: 96 95 lsr r25
4ac: 87 95 ror r24
4ae: 97 f9 bld r25, 7
4b0: 08 95 ret
000004b2 <__fp_inf>:
4b2: 97 f9 bld r25, 7
4b4: 9f 67 ori r25, 0x7F ; 127
4b6: 80 e8 ldi r24, 0x80 ; 128
4b8: 70 e0 ldi r23, 0x00 ; 0
4ba: 60 e0 ldi r22, 0x00 ; 0
4bc: 08 95 ret
000004be <__fp_nan>:
4be: 9f ef ldi r25, 0xFF ; 255
4c0: 80 ec ldi r24, 0xC0 ; 192
4c2: 08 95 ret
000004c4 <__fp_pscA>:
4c4: 00 24 eor r0, r0
4c6: 0a 94 dec r0
4c8: 16 16 cp r1, r22
4ca: 17 06 cpc r1, r23
4cc: 18 06 cpc r1, r24
4ce: 09 06 cpc r0, r25
4d0: 08 95 ret
000004d2 <__fp_pscB>:
4d2: 00 24 eor r0, r0
4d4: 0a 94 dec r0
4d6: 12 16 cp r1, r18
4d8: 13 06 cpc r1, r19
4da: 14 06 cpc r1, r20
4dc: 05 06 cpc r0, r21
4de: 08 95 ret
000004e0 <__fp_round>:
4e0: 09 2e mov r0, r25
4e2: 03 94 inc r0
4e4: 00 0c add r0, r0
4e6: 11 f4 brne .+4 ; 0x4ec <__fp_round+0xc>
4e8: 88 23 and r24, r24
4ea: 52 f0 brmi .+20 ; 0x500 <__fp_round+0x20>
4ec: bb 0f add r27, r27
4ee: 40 f4 brcc .+16 ; 0x500 <__fp_round+0x20>
4f0: bf 2b or r27, r31
4f2: 11 f4 brne .+4 ; 0x4f8 <__fp_round+0x18>
4f4: 60 ff sbrs r22, 0
4f6: 04 c0 rjmp .+8 ; 0x500 <__fp_round+0x20>
4f8: 6f 5f subi r22, 0xFF ; 255
4fa: 7f 4f sbci r23, 0xFF ; 255
4fc: 8f 4f sbci r24, 0xFF ; 255
4fe: 9f 4f sbci r25, 0xFF ; 255
500: 08 95 ret
00000502 <__fp_split3>:
502: 57 fd sbrc r21, 7
504: 90 58 subi r25, 0x80 ; 128
506: 44 0f add r20, r20
508: 55 1f adc r21, r21
50a: 59 f0 breq .+22 ; 0x522 <__fp_splitA+0x10>
50c: 5f 3f cpi r21, 0xFF ; 255
50e: 71 f0 breq .+28 ; 0x52c <__fp_splitA+0x1a>
510: 47 95 ror r20
00000512 <__fp_splitA>:
512: 88 0f add r24, r24
514: 97 fb bst r25, 7
516: 99 1f adc r25, r25
518: 61 f0 breq .+24 ; 0x532 <__fp_splitA+0x20>
51a: 9f 3f cpi r25, 0xFF ; 255
51c: 79 f0 breq .+30 ; 0x53c <__fp_splitA+0x2a>
51e: 87 95 ror r24
520: 08 95 ret
522: 12 16 cp r1, r18
524: 13 06 cpc r1, r19
526: 14 06 cpc r1, r20
528: 55 1f adc r21, r21
52a: f2 cf rjmp .-28 ; 0x510 <__fp_split3+0xe>
52c: 46 95 lsr r20
52e: f1 df rcall .-30 ; 0x512 <__fp_splitA>
530: 08 c0 rjmp .+16 ; 0x542 <__fp_splitA+0x30>
532: 16 16 cp r1, r22
534: 17 06 cpc r1, r23
536: 18 06 cpc r1, r24
538: 99 1f adc r25, r25
53a: f1 cf rjmp .-30 ; 0x51e <__fp_splitA+0xc>
53c: 86 95 lsr r24
53e: 71 05 cpc r23, r1
540: 61 05 cpc r22, r1
542: 08 94 sec
544: 08 95 ret
00000546 <__fp_zero>:
546: e8 94 clt
00000548 <__fp_szero>:
548: bb 27 eor r27, r27
54a: 66 27 eor r22, r22
54c: 77 27 eor r23, r23
54e: cb 01 movw r24, r22
550: 97 f9 bld r25, 7
552: 08 95 ret
00000554 <__mulsf3>:
554: 0b d0 rcall .+22 ; 0x56c <__mulsf3x>
556: c4 cf rjmp .-120 ; 0x4e0 <__fp_round>
558: b5 df rcall .-150 ; 0x4c4 <__fp_pscA>
55a: 28 f0 brcs .+10 ; 0x566 <__mulsf3+0x12>
55c: ba df rcall .-140 ; 0x4d2 <__fp_pscB>
55e: 18 f0 brcs .+6 ; 0x566 <__mulsf3+0x12>
560: 95 23 and r25, r21
562: 09 f0 breq .+2 ; 0x566 <__mulsf3+0x12>
564: a6 cf rjmp .-180 ; 0x4b2 <__fp_inf>
566: ab cf rjmp .-170 ; 0x4be <__fp_nan>
568: 11 24 eor r1, r1
56a: ee cf rjmp .-36 ; 0x548 <__fp_szero>
0000056c <__mulsf3x>:
56c: ca df rcall .-108 ; 0x502 <__fp_split3>
56e: a0 f3 brcs .-24 ; 0x558 <__mulsf3+0x4>
00000570 <__mulsf3_pse>:
570: 95 9f mul r25, r21
572: d1 f3 breq .-12 ; 0x568 <__mulsf3+0x14>
574: 95 0f add r25, r21
576: 50 e0 ldi r21, 0x00 ; 0
578: 55 1f adc r21, r21
57a: 62 9f mul r22, r18
57c: f0 01 movw r30, r0
57e: 72 9f mul r23, r18
580: bb 27 eor r27, r27
582: f0 0d add r31, r0
584: b1 1d adc r27, r1
586: 63 9f mul r22, r19
588: aa 27 eor r26, r26
58a: f0 0d add r31, r0
58c: b1 1d adc r27, r1
58e: aa 1f adc r26, r26
590: 64 9f mul r22, r20
592: 66 27 eor r22, r22
594: b0 0d add r27, r0
596: a1 1d adc r26, r1
598: 66 1f adc r22, r22
59a: 82 9f mul r24, r18
59c: 22 27 eor r18, r18
59e: b0 0d add r27, r0
5a0: a1 1d adc r26, r1
5a2: 62 1f adc r22, r18
5a4: 73 9f mul r23, r19
5a6: b0 0d add r27, r0
5a8: a1 1d adc r26, r1
5aa: 62 1f adc r22, r18
5ac: 83 9f mul r24, r19
5ae: a0 0d add r26, r0
5b0: 61 1d adc r22, r1
5b2: 22 1f adc r18, r18
5b4: 74 9f mul r23, r20
5b6: 33 27 eor r19, r19
5b8: a0 0d add r26, r0
5ba: 61 1d adc r22, r1
5bc: 23 1f adc r18, r19
5be: 84 9f mul r24, r20
5c0: 60 0d add r22, r0
5c2: 21 1d adc r18, r1
5c4: 82 2f mov r24, r18
5c6: 76 2f mov r23, r22
5c8: 6a 2f mov r22, r26
5ca: 11 24 eor r1, r1
5cc: 9f 57 subi r25, 0x7F ; 127
5ce: 50 40 sbci r21, 0x00 ; 0
5d0: 8a f0 brmi .+34 ; 0x5f4 <__mulsf3_pse+0x84>
5d2: e1 f0 breq .+56 ; 0x60c <__mulsf3_pse+0x9c>
5d4: 88 23 and r24, r24
5d6: 4a f0 brmi .+18 ; 0x5ea <__mulsf3_pse+0x7a>
5d8: ee 0f add r30, r30
5da: ff 1f adc r31, r31
5dc: bb 1f adc r27, r27
5de: 66 1f adc r22, r22
5e0: 77 1f adc r23, r23
5e2: 88 1f adc r24, r24
5e4: 91 50 subi r25, 0x01 ; 1
5e6: 50 40 sbci r21, 0x00 ; 0
5e8: a9 f7 brne .-22 ; 0x5d4 <__mulsf3_pse+0x64>
5ea: 9e 3f cpi r25, 0xFE ; 254
5ec: 51 05 cpc r21, r1
5ee: 70 f0 brcs .+28 ; 0x60c <__mulsf3_pse+0x9c>
5f0: 60 cf rjmp .-320 ; 0x4b2 <__fp_inf>
5f2: aa cf rjmp .-172 ; 0x548 <__fp_szero>
5f4: 5f 3f cpi r21, 0xFF ; 255
5f6: ec f3 brlt .-6 ; 0x5f2 <__mulsf3_pse+0x82>
5f8: 98 3e cpi r25, 0xE8 ; 232
5fa: dc f3 brlt .-10 ; 0x5f2 <__mulsf3_pse+0x82>
5fc: 86 95 lsr r24
5fe: 77 95 ror r23
600: 67 95 ror r22
602: b7 95 ror r27
604: f7 95 ror r31
606: e7 95 ror r30
608: 9f 5f subi r25, 0xFF ; 255
60a: c1 f7 brne .-16 ; 0x5fc <__mulsf3_pse+0x8c>
60c: fe 2b or r31, r30
60e: 88 0f add r24, r24
610: 91 1d adc r25, r1
612: 96 95 lsr r25
614: 87 95 ror r24
616: 97 f9 bld r25, 7
618: 08 95 ret
0000061a <printf>:
61a: a0 e0 ldi r26, 0x00 ; 0
61c: b0 e0 ldi r27, 0x00 ; 0
61e: e2 e1 ldi r30, 0x12 ; 18
620: f3 e0 ldi r31, 0x03 ; 3
622: ba c2 rjmp .+1396 ; 0xb98 <__prologue_saves__+0x20>
624: fe 01 movw r30, r28
626: 35 96 adiw r30, 0x05 ; 5
628: 61 91 ld r22, Z+
62a: 71 91 ld r23, Z+
62c: 80 91 b5 00 lds r24, 0x00B5
630: 90 91 b6 00 lds r25, 0x00B6
634: af 01 movw r20, r30
636: 31 d0 rcall .+98 ; 0x69a <vfprintf>
638: 20 96 adiw r28, 0x00 ; 0
63a: e2 e0 ldi r30, 0x02 ; 2
63c: c9 c2 rjmp .+1426 ; 0xbd0 <__epilogue_restores__+0x20>
0000063e <puts>:
63e: 0f 93 push r16
640: 1f 93 push r17
642: cf 93 push r28
644: df 93 push r29
646: 8c 01 movw r16, r24
648: e0 91 b5 00 lds r30, 0x00B5
64c: f0 91 b6 00 lds r31, 0x00B6
650: 83 81 ldd r24, Z+3 ; 0x03
652: 81 ff sbrs r24, 1
654: 1a c0 rjmp .+52 ; 0x68a <puts+0x4c>
656: c0 e0 ldi r28, 0x00 ; 0
658: d0 e0 ldi r29, 0x00 ; 0
65a: 05 c0 rjmp .+10 ; 0x666 <puts+0x28>
65c: 09 95 icall
65e: 00 97 sbiw r24, 0x00 ; 0
660: 11 f0 breq .+4 ; 0x666 <puts+0x28>
662: cf ef ldi r28, 0xFF ; 255
664: df ef ldi r29, 0xFF ; 255
666: f8 01 movw r30, r16
668: 81 91 ld r24, Z+
66a: 8f 01 movw r16, r30
66c: 60 91 b5 00 lds r22, 0x00B5
670: 70 91 b6 00 lds r23, 0x00B6
674: db 01 movw r26, r22
676: 18 96 adiw r26, 0x08 ; 8
678: ed 91 ld r30, X+
67a: fc 91 ld r31, X
67c: 19 97 sbiw r26, 0x09 ; 9
67e: 88 23 and r24, r24
680: 69 f7 brne .-38 ; 0x65c <puts+0x1e>
682: 8a e0 ldi r24, 0x0A ; 10
684: 09 95 icall
686: 00 97 sbiw r24, 0x00 ; 0
688: 11 f0 breq .+4 ; 0x68e <puts+0x50>
68a: cf ef ldi r28, 0xFF ; 255
68c: df ef ldi r29, 0xFF ; 255
68e: ce 01 movw r24, r28
690: df 91 pop r29
692: cf 91 pop r28
694: 1f 91 pop r17
696: 0f 91 pop r16
698: 08 95 ret
0000069a <vfprintf>:
69a: ad e0 ldi r26, 0x0D ; 13
69c: b0 e0 ldi r27, 0x00 ; 0
69e: e2 e5 ldi r30, 0x52 ; 82
6a0: f3 e0 ldi r31, 0x03 ; 3
6a2: 6a c2 rjmp .+1236 ; 0xb78 <__prologue_saves__>
6a4: 3c 01 movw r6, r24
6a6: 7d 87 std Y+13, r23 ; 0x0d
6a8: 6c 87 std Y+12, r22 ; 0x0c
6aa: 5a 01 movw r10, r20
6ac: fc 01 movw r30, r24
6ae: 17 82 std Z+7, r1 ; 0x07
6b0: 16 82 std Z+6, r1 ; 0x06
6b2: 83 81 ldd r24, Z+3 ; 0x03
6b4: 81 ff sbrs r24, 1
6b6: bb c1 rjmp .+886 ; 0xa2e <vfprintf+0x394>
6b8: 2e 01 movw r4, r28
6ba: 08 94 sec
6bc: 41 1c adc r4, r1
6be: 51 1c adc r5, r1
6c0: f3 01 movw r30, r6
6c2: 93 81 ldd r25, Z+3 ; 0x03
6c4: ec 85 ldd r30, Y+12 ; 0x0c
6c6: fd 85 ldd r31, Y+13 ; 0x0d
6c8: 93 fd sbrc r25, 3
6ca: 85 91 lpm r24, Z+
6cc: 93 ff sbrs r25, 3
6ce: 81 91 ld r24, Z+
6d0: fd 87 std Y+13, r31 ; 0x0d
6d2: ec 87 std Y+12, r30 ; 0x0c
6d4: 88 23 and r24, r24
6d6: 09 f4 brne .+2 ; 0x6da <vfprintf+0x40>
6d8: a6 c1 rjmp .+844 ; 0xa26 <vfprintf+0x38c>
6da: 85 32 cpi r24, 0x25 ; 37
6dc: 41 f4 brne .+16 ; 0x6ee <vfprintf+0x54>
6de: 93 fd sbrc r25, 3
6e0: 85 91 lpm r24, Z+
6e2: 93 ff sbrs r25, 3
6e4: 81 91 ld r24, Z+
6e6: fd 87 std Y+13, r31 ; 0x0d
6e8: ec 87 std Y+12, r30 ; 0x0c
6ea: 85 32 cpi r24, 0x25 ; 37
6ec: 21 f4 brne .+8 ; 0x6f6 <vfprintf+0x5c>
6ee: 90 e0 ldi r25, 0x00 ; 0
6f0: b3 01 movw r22, r6
6f2: b8 d1 rcall .+880 ; 0xa64 <fputc>
6f4: e5 cf rjmp .-54 ; 0x6c0 <vfprintf+0x26>
6f6: ff 24 eor r15, r15
6f8: ee 24 eor r14, r14
6fa: 10 e0 ldi r17, 0x00 ; 0
6fc: 10 32 cpi r17, 0x20 ; 32
6fe: b0 f4 brcc .+44 ; 0x72c <vfprintf+0x92>
700: 8b 32 cpi r24, 0x2B ; 43
702: 69 f0 breq .+26 ; 0x71e <vfprintf+0x84>
704: 8c 32 cpi r24, 0x2C ; 44
706: 28 f4 brcc .+10 ; 0x712 <vfprintf+0x78>
708: 80 32 cpi r24, 0x20 ; 32
70a: 51 f0 breq .+20 ; 0x720 <vfprintf+0x86>
70c: 83 32 cpi r24, 0x23 ; 35
70e: 71 f4 brne .+28 ; 0x72c <vfprintf+0x92>
710: 0b c0 rjmp .+22 ; 0x728 <vfprintf+0x8e>
712: 8d 32 cpi r24, 0x2D ; 45
714: 39 f0 breq .+14 ; 0x724 <vfprintf+0x8a>
716: 80 33 cpi r24, 0x30 ; 48
718: 49 f4 brne .+18 ; 0x72c <vfprintf+0x92>
71a: 11 60 ori r17, 0x01 ; 1
71c: 2c c0 rjmp .+88 ; 0x776 <vfprintf+0xdc>
71e: 12 60 ori r17, 0x02 ; 2
720: 14 60 ori r17, 0x04 ; 4
722: 29 c0 rjmp .+82 ; 0x776 <vfprintf+0xdc>
724: 18 60 ori r17, 0x08 ; 8
726: 27 c0 rjmp .+78 ; 0x776 <vfprintf+0xdc>
728: 10 61 ori r17, 0x10 ; 16
72a: 25 c0 rjmp .+74 ; 0x776 <vfprintf+0xdc>
72c: 17 fd sbrc r17, 7
72e: 2e c0 rjmp .+92 ; 0x78c <vfprintf+0xf2>
730: 28 2f mov r18, r24
732: 20 53 subi r18, 0x30 ; 48
734: 2a 30 cpi r18, 0x0A ; 10
736: 98 f4 brcc .+38 ; 0x75e <vfprintf+0xc4>
738: 16 ff sbrs r17, 6
73a: 08 c0 rjmp .+16 ; 0x74c <vfprintf+0xb2>
73c: 8f 2d mov r24, r15
73e: 88 0f add r24, r24
740: f8 2e mov r15, r24
742: ff 0c add r15, r15
744: ff 0c add r15, r15
746: f8 0e add r15, r24
748: f2 0e add r15, r18
74a: 15 c0 rjmp .+42 ; 0x776 <vfprintf+0xdc>
74c: 8e 2d mov r24, r14
74e: 88 0f add r24, r24
750: e8 2e mov r14, r24
752: ee 0c add r14, r14
754: ee 0c add r14, r14
756: e8 0e add r14, r24
758: e2 0e add r14, r18
75a: 10 62 ori r17, 0x20 ; 32
75c: 0c c0 rjmp .+24 ; 0x776 <vfprintf+0xdc>
75e: 8e 32 cpi r24, 0x2E ; 46
760: 21 f4 brne .+8 ; 0x76a <vfprintf+0xd0>
762: 16 fd sbrc r17, 6
764: 60 c1 rjmp .+704 ; 0xa26 <vfprintf+0x38c>
766: 10 64 ori r17, 0x40 ; 64
768: 06 c0 rjmp .+12 ; 0x776 <vfprintf+0xdc>
76a: 8c 36 cpi r24, 0x6C ; 108
76c: 11 f4 brne .+4 ; 0x772 <vfprintf+0xd8>
76e: 10 68 ori r17, 0x80 ; 128
770: 02 c0 rjmp .+4 ; 0x776 <vfprintf+0xdc>
772: 88 36 cpi r24, 0x68 ; 104
774: 59 f4 brne .+22 ; 0x78c <vfprintf+0xf2>
776: ec 85 ldd r30, Y+12 ; 0x0c
778: fd 85 ldd r31, Y+13 ; 0x0d
77a: 93 fd sbrc r25, 3
77c: 85 91 lpm r24, Z+
77e: 93 ff sbrs r25, 3
780: 81 91 ld r24, Z+
782: fd 87 std Y+13, r31 ; 0x0d
784: ec 87 std Y+12, r30 ; 0x0c
786: 88 23 and r24, r24
788: 09 f0 breq .+2 ; 0x78c <vfprintf+0xf2>
78a: b8 cf rjmp .-144 ; 0x6fc <vfprintf+0x62>
78c: 98 2f mov r25, r24
78e: 95 54 subi r25, 0x45 ; 69
790: 93 30 cpi r25, 0x03 ; 3
792: 18 f0 brcs .+6 ; 0x79a <vfprintf+0x100>
794: 90 52 subi r25, 0x20 ; 32
796: 93 30 cpi r25, 0x03 ; 3
798: 38 f4 brcc .+14 ; 0x7a8 <vfprintf+0x10e>
79a: 24 e0 ldi r18, 0x04 ; 4
79c: 30 e0 ldi r19, 0x00 ; 0
79e: a2 0e add r10, r18
7a0: b3 1e adc r11, r19
7a2: 3f e3 ldi r19, 0x3F ; 63
7a4: 39 83 std Y+1, r19 ; 0x01
7a6: 0f c0 rjmp .+30 ; 0x7c6 <vfprintf+0x12c>
7a8: 83 36 cpi r24, 0x63 ; 99
7aa: 31 f0 breq .+12 ; 0x7b8 <vfprintf+0x11e>
7ac: 83 37 cpi r24, 0x73 ; 115
7ae: 81 f0 breq .+32 ; 0x7d0 <vfprintf+0x136>
7b0: 83 35 cpi r24, 0x53 ; 83
7b2: 09 f0 breq .+2 ; 0x7b6 <vfprintf+0x11c>
7b4: 56 c0 rjmp .+172 ; 0x862 <vfprintf+0x1c8>
7b6: 21 c0 rjmp .+66 ; 0x7fa <vfprintf+0x160>
7b8: f5 01 movw r30, r10
7ba: 80 81 ld r24, Z
7bc: 89 83 std Y+1, r24 ; 0x01
7be: 22 e0 ldi r18, 0x02 ; 2
7c0: 30 e0 ldi r19, 0x00 ; 0
7c2: a2 0e add r10, r18
7c4: b3 1e adc r11, r19
7c6: 21 e0 ldi r18, 0x01 ; 1
7c8: c2 2e mov r12, r18
7ca: d1 2c mov r13, r1
7cc: 42 01 movw r8, r4
7ce: 13 c0 rjmp .+38 ; 0x7f6 <vfprintf+0x15c>
7d0: 92 e0 ldi r25, 0x02 ; 2
7d2: 29 2e mov r2, r25
7d4: 31 2c mov r3, r1
7d6: 2a 0c add r2, r10
7d8: 3b 1c adc r3, r11
7da: f5 01 movw r30, r10
7dc: 80 80 ld r8, Z
7de: 91 80 ldd r9, Z+1 ; 0x01
7e0: 16 ff sbrs r17, 6
7e2: 03 c0 rjmp .+6 ; 0x7ea <vfprintf+0x150>
7e4: 6f 2d mov r22, r15
7e6: 70 e0 ldi r23, 0x00 ; 0
7e8: 02 c0 rjmp .+4 ; 0x7ee <vfprintf+0x154>
7ea: 6f ef ldi r22, 0xFF ; 255
7ec: 7f ef ldi r23, 0xFF ; 255
7ee: c4 01 movw r24, r8
7f0: 2e d1 rcall .+604 ; 0xa4e <strnlen>
7f2: 6c 01 movw r12, r24
7f4: 51 01 movw r10, r2
7f6: 1f 77 andi r17, 0x7F ; 127
7f8: 14 c0 rjmp .+40 ; 0x822 <vfprintf+0x188>
7fa: 82 e0 ldi r24, 0x02 ; 2
7fc: 28 2e mov r2, r24
7fe: 31 2c mov r3, r1
800: 2a 0c add r2, r10
802: 3b 1c adc r3, r11
804: f5 01 movw r30, r10
806: 80 80 ld r8, Z
808: 91 80 ldd r9, Z+1 ; 0x01
80a: 16 ff sbrs r17, 6
80c: 03 c0 rjmp .+6 ; 0x814 <vfprintf+0x17a>
80e: 6f 2d mov r22, r15
810: 70 e0 ldi r23, 0x00 ; 0
812: 02 c0 rjmp .+4 ; 0x818 <vfprintf+0x17e>
814: 6f ef ldi r22, 0xFF ; 255
816: 7f ef ldi r23, 0xFF ; 255
818: c4 01 movw r24, r8
81a: 0e d1 rcall .+540 ; 0xa38 <strnlen_P>
81c: 6c 01 movw r12, r24
81e: 10 68 ori r17, 0x80 ; 128
820: 51 01 movw r10, r2
822: 13 fd sbrc r17, 3
824: 1a c0 rjmp .+52 ; 0x85a <vfprintf+0x1c0>
826: 05 c0 rjmp .+10 ; 0x832 <vfprintf+0x198>
828: 80 e2 ldi r24, 0x20 ; 32
82a: 90 e0 ldi r25, 0x00 ; 0
82c: b3 01 movw r22, r6
82e: 1a d1 rcall .+564 ; 0xa64 <fputc>
830: ea 94 dec r14
832: 8e 2d mov r24, r14
834: 90 e0 ldi r25, 0x00 ; 0
836: c8 16 cp r12, r24
838: d9 06 cpc r13, r25
83a: b0 f3 brcs .-20 ; 0x828 <vfprintf+0x18e>
83c: 0e c0 rjmp .+28 ; 0x85a <vfprintf+0x1c0>
83e: f4 01 movw r30, r8
840: 17 fd sbrc r17, 7
842: 85 91 lpm r24, Z+
844: 17 ff sbrs r17, 7
846: 81 91 ld r24, Z+
848: 4f 01 movw r8, r30
84a: 90 e0 ldi r25, 0x00 ; 0
84c: b3 01 movw r22, r6
84e: 0a d1 rcall .+532 ; 0xa64 <fputc>
850: e1 10 cpse r14, r1
852: ea 94 dec r14
854: 08 94 sec
856: c1 08 sbc r12, r1
858: d1 08 sbc r13, r1
85a: c1 14 cp r12, r1
85c: d1 04 cpc r13, r1
85e: 79 f7 brne .-34 ; 0x83e <vfprintf+0x1a4>
860: df c0 rjmp .+446 ; 0xa20 <vfprintf+0x386>
862: 84 36 cpi r24, 0x64 ; 100
864: 11 f0 breq .+4 ; 0x86a <vfprintf+0x1d0>
866: 89 36 cpi r24, 0x69 ; 105
868: 49 f5 brne .+82 ; 0x8bc <vfprintf+0x222>
86a: f5 01 movw r30, r10
86c: 17 ff sbrs r17, 7
86e: 07 c0 rjmp .+14 ; 0x87e <vfprintf+0x1e4>
870: 80 81 ld r24, Z
872: 91 81 ldd r25, Z+1 ; 0x01
874: a2 81 ldd r26, Z+2 ; 0x02
876: b3 81 ldd r27, Z+3 ; 0x03
878: 24 e0 ldi r18, 0x04 ; 4
87a: 30 e0 ldi r19, 0x00 ; 0
87c: 08 c0 rjmp .+16 ; 0x88e <vfprintf+0x1f4>
87e: 80 81 ld r24, Z
880: 91 81 ldd r25, Z+1 ; 0x01
882: aa 27 eor r26, r26
884: 97 fd sbrc r25, 7
886: a0 95 com r26
888: ba 2f mov r27, r26
88a: 22 e0 ldi r18, 0x02 ; 2
88c: 30 e0 ldi r19, 0x00 ; 0
88e: a2 0e add r10, r18
890: b3 1e adc r11, r19
892: 01 2f mov r16, r17
894: 0f 76 andi r16, 0x6F ; 111
896: b7 ff sbrs r27, 7
898: 08 c0 rjmp .+16 ; 0x8aa <vfprintf+0x210>
89a: b0 95 com r27
89c: a0 95 com r26
89e: 90 95 com r25
8a0: 81 95 neg r24
8a2: 9f 4f sbci r25, 0xFF ; 255
8a4: af 4f sbci r26, 0xFF ; 255
8a6: bf 4f sbci r27, 0xFF ; 255
8a8: 00 68 ori r16, 0x80 ; 128
8aa: bc 01 movw r22, r24
8ac: cd 01 movw r24, r26
8ae: a2 01 movw r20, r4
8b0: 2a e0 ldi r18, 0x0A ; 10
8b2: 30 e0 ldi r19, 0x00 ; 0
8b4: 03 d1 rcall .+518 ; 0xabc <__ultoa_invert>
8b6: d8 2e mov r13, r24
8b8: d4 18 sub r13, r4
8ba: 3e c0 rjmp .+124 ; 0x938 <vfprintf+0x29e>
8bc: 85 37 cpi r24, 0x75 ; 117
8be: 21 f4 brne .+8 ; 0x8c8 <vfprintf+0x22e>
8c0: 1f 7e andi r17, 0xEF ; 239
8c2: 2a e0 ldi r18, 0x0A ; 10
8c4: 30 e0 ldi r19, 0x00 ; 0
8c6: 20 c0 rjmp .+64 ; 0x908 <vfprintf+0x26e>
8c8: 19 7f andi r17, 0xF9 ; 249
8ca: 8f 36 cpi r24, 0x6F ; 111
8cc: a9 f0 breq .+42 ; 0x8f8 <vfprintf+0x25e>
8ce: 80 37 cpi r24, 0x70 ; 112
8d0: 20 f4 brcc .+8 ; 0x8da <vfprintf+0x240>
8d2: 88 35 cpi r24, 0x58 ; 88
8d4: 09 f0 breq .+2 ; 0x8d8 <vfprintf+0x23e>
8d6: a7 c0 rjmp .+334 ; 0xa26 <vfprintf+0x38c>
8d8: 0b c0 rjmp .+22 ; 0x8f0 <vfprintf+0x256>
8da: 80 37 cpi r24, 0x70 ; 112
8dc: 21 f0 breq .+8 ; 0x8e6 <vfprintf+0x24c>
8de: 88 37 cpi r24, 0x78 ; 120
8e0: 09 f0 breq .+2 ; 0x8e4 <vfprintf+0x24a>
8e2: a1 c0 rjmp .+322 ; 0xa26 <vfprintf+0x38c>
8e4: 01 c0 rjmp .+2 ; 0x8e8 <vfprintf+0x24e>
8e6: 10 61 ori r17, 0x10 ; 16
8e8: 14 ff sbrs r17, 4
8ea: 09 c0 rjmp .+18 ; 0x8fe <vfprintf+0x264>
8ec: 14 60 ori r17, 0x04 ; 4
8ee: 07 c0 rjmp .+14 ; 0x8fe <vfprintf+0x264>
8f0: 14 ff sbrs r17, 4
8f2: 08 c0 rjmp .+16 ; 0x904 <vfprintf+0x26a>
8f4: 16 60 ori r17, 0x06 ; 6
8f6: 06 c0 rjmp .+12 ; 0x904 <vfprintf+0x26a>
8f8: 28 e0 ldi r18, 0x08 ; 8
8fa: 30 e0 ldi r19, 0x00 ; 0
8fc: 05 c0 rjmp .+10 ; 0x908 <vfprintf+0x26e>
8fe: 20 e1 ldi r18, 0x10 ; 16
900: 30 e0 ldi r19, 0x00 ; 0
902: 02 c0 rjmp .+4 ; 0x908 <vfprintf+0x26e>
904: 20 e1 ldi r18, 0x10 ; 16
906: 32 e0 ldi r19, 0x02 ; 2
908: f5 01 movw r30, r10
90a: 17 ff sbrs r17, 7
90c: 07 c0 rjmp .+14 ; 0x91c <vfprintf+0x282>
90e: 60 81 ld r22, Z
910: 71 81 ldd r23, Z+1 ; 0x01
912: 82 81 ldd r24, Z+2 ; 0x02
914: 93 81 ldd r25, Z+3 ; 0x03
916: 44 e0 ldi r20, 0x04 ; 4
918: 50 e0 ldi r21, 0x00 ; 0
91a: 06 c0 rjmp .+12 ; 0x928 <vfprintf+0x28e>
91c: 60 81 ld r22, Z
91e: 71 81 ldd r23, Z+1 ; 0x01
920: 80 e0 ldi r24, 0x00 ; 0
922: 90 e0 ldi r25, 0x00 ; 0
924: 42 e0 ldi r20, 0x02 ; 2
926: 50 e0 ldi r21, 0x00 ; 0
928: a4 0e add r10, r20
92a: b5 1e adc r11, r21
92c: a2 01 movw r20, r4
92e: c6 d0 rcall .+396 ; 0xabc <__ultoa_invert>
930: d8 2e mov r13, r24
932: d4 18 sub r13, r4
934: 01 2f mov r16, r17
936: 0f 77 andi r16, 0x7F ; 127
938: 06 ff sbrs r16, 6
93a: 09 c0 rjmp .+18 ; 0x94e <vfprintf+0x2b4>
93c: 0e 7f andi r16, 0xFE ; 254
93e: df 14 cp r13, r15
940: 30 f4 brcc .+12 ; 0x94e <vfprintf+0x2b4>
942: 04 ff sbrs r16, 4
944: 06 c0 rjmp .+12 ; 0x952 <vfprintf+0x2b8>
946: 02 fd sbrc r16, 2
948: 04 c0 rjmp .+8 ; 0x952 <vfprintf+0x2b8>
94a: 0f 7e andi r16, 0xEF ; 239
94c: 02 c0 rjmp .+4 ; 0x952 <vfprintf+0x2b8>
94e: 1d 2d mov r17, r13
950: 01 c0 rjmp .+2 ; 0x954 <vfprintf+0x2ba>
952: 1f 2d mov r17, r15
954: 80 2f mov r24, r16
956: 90 e0 ldi r25, 0x00 ; 0
958: 04 ff sbrs r16, 4
95a: 0c c0 rjmp .+24 ; 0x974 <vfprintf+0x2da>
95c: fe 01 movw r30, r28
95e: ed 0d add r30, r13
960: f1 1d adc r31, r1
962: 20 81 ld r18, Z
964: 20 33 cpi r18, 0x30 ; 48
966: 11 f4 brne .+4 ; 0x96c <vfprintf+0x2d2>
968: 09 7e andi r16, 0xE9 ; 233
96a: 09 c0 rjmp .+18 ; 0x97e <vfprintf+0x2e4>
96c: 02 ff sbrs r16, 2
96e: 06 c0 rjmp .+12 ; 0x97c <vfprintf+0x2e2>
970: 1e 5f subi r17, 0xFE ; 254
972: 05 c0 rjmp .+10 ; 0x97e <vfprintf+0x2e4>
974: 86 78 andi r24, 0x86 ; 134
976: 90 70 andi r25, 0x00 ; 0
978: 00 97 sbiw r24, 0x00 ; 0
97a: 09 f0 breq .+2 ; 0x97e <vfprintf+0x2e4>
97c: 1f 5f subi r17, 0xFF ; 255
97e: 80 2e mov r8, r16
980: 99 24 eor r9, r9
982: 03 fd sbrc r16, 3
984: 11 c0 rjmp .+34 ; 0x9a8 <vfprintf+0x30e>
986: 00 ff sbrs r16, 0
988: 0c c0 rjmp .+24 ; 0x9a2 <vfprintf+0x308>
98a: fd 2c mov r15, r13
98c: 1e 15 cp r17, r14
98e: 48 f4 brcc .+18 ; 0x9a2 <vfprintf+0x308>
990: fe 0c add r15, r14
992: f1 1a sub r15, r17
994: 1e 2d mov r17, r14
996: 05 c0 rjmp .+10 ; 0x9a2 <vfprintf+0x308>
998: 80 e2 ldi r24, 0x20 ; 32
99a: 90 e0 ldi r25, 0x00 ; 0
99c: b3 01 movw r22, r6
99e: 62 d0 rcall .+196 ; 0xa64 <fputc>
9a0: 1f 5f subi r17, 0xFF ; 255
9a2: 1e 15 cp r17, r14
9a4: c8 f3 brcs .-14 ; 0x998 <vfprintf+0x2fe>
9a6: 04 c0 rjmp .+8 ; 0x9b0 <vfprintf+0x316>
9a8: 1e 15 cp r17, r14
9aa: 10 f4 brcc .+4 ; 0x9b0 <vfprintf+0x316>
9ac: e1 1a sub r14, r17
9ae: 01 c0 rjmp .+2 ; 0x9b2 <vfprintf+0x318>
9b0: ee 24 eor r14, r14
9b2: 84 fe sbrs r8, 4
9b4: 0e c0 rjmp .+28 ; 0x9d2 <vfprintf+0x338>
9b6: 80 e3 ldi r24, 0x30 ; 48
9b8: 90 e0 ldi r25, 0x00 ; 0
9ba: b3 01 movw r22, r6
9bc: 53 d0 rcall .+166 ; 0xa64 <fputc>
9be: 82 fe sbrs r8, 2
9c0: 1d c0 rjmp .+58 ; 0x9fc <vfprintf+0x362>
9c2: 81 fe sbrs r8, 1
9c4: 03 c0 rjmp .+6 ; 0x9cc <vfprintf+0x332>
9c6: 88 e5 ldi r24, 0x58 ; 88
9c8: 90 e0 ldi r25, 0x00 ; 0
9ca: 10 c0 rjmp .+32 ; 0x9ec <vfprintf+0x352>
9cc: 88 e7 ldi r24, 0x78 ; 120
9ce: 90 e0 ldi r25, 0x00 ; 0
9d0: 0d c0 rjmp .+26 ; 0x9ec <vfprintf+0x352>
9d2: c4 01 movw r24, r8
9d4: 86 78 andi r24, 0x86 ; 134
9d6: 90 70 andi r25, 0x00 ; 0
9d8: 00 97 sbiw r24, 0x00 ; 0
9da: 81 f0 breq .+32 ; 0x9fc <vfprintf+0x362>
9dc: 81 fc sbrc r8, 1
9de: 02 c0 rjmp .+4 ; 0x9e4 <vfprintf+0x34a>
9e0: 80 e2 ldi r24, 0x20 ; 32
9e2: 01 c0 rjmp .+2 ; 0x9e6 <vfprintf+0x34c>
9e4: 8b e2 ldi r24, 0x2B ; 43
9e6: 07 fd sbrc r16, 7
9e8: 8d e2 ldi r24, 0x2D ; 45
9ea: 90 e0 ldi r25, 0x00 ; 0
9ec: b3 01 movw r22, r6
9ee: 3a d0 rcall .+116 ; 0xa64 <fputc>
9f0: 05 c0 rjmp .+10 ; 0x9fc <vfprintf+0x362>
9f2: 80 e3 ldi r24, 0x30 ; 48
9f4: 90 e0 ldi r25, 0x00 ; 0
9f6: b3 01 movw r22, r6
9f8: 35 d0 rcall .+106 ; 0xa64 <fputc>
9fa: fa 94 dec r15
9fc: df 14 cp r13, r15
9fe: c8 f3 brcs .-14 ; 0x9f2 <vfprintf+0x358>
a00: da 94 dec r13
a02: f2 01 movw r30, r4
a04: ed 0d add r30, r13
a06: f1 1d adc r31, r1
a08: 80 81 ld r24, Z
a0a: 90 e0 ldi r25, 0x00 ; 0
a0c: b3 01 movw r22, r6
a0e: 2a d0 rcall .+84 ; 0xa64 <fputc>
a10: dd 20 and r13, r13
a12: b1 f7 brne .-20 ; 0xa00 <vfprintf+0x366>
a14: 05 c0 rjmp .+10 ; 0xa20 <vfprintf+0x386>
a16: 80 e2 ldi r24, 0x20 ; 32
a18: 90 e0 ldi r25, 0x00 ; 0
a1a: b3 01 movw r22, r6
a1c: 23 d0 rcall .+70 ; 0xa64 <fputc>
a1e: ea 94 dec r14
a20: ee 20 and r14, r14
a22: c9 f7 brne .-14 ; 0xa16 <vfprintf+0x37c>
a24: 4d ce rjmp .-870 ; 0x6c0 <vfprintf+0x26>
a26: f3 01 movw r30, r6
a28: 86 81 ldd r24, Z+6 ; 0x06
a2a: 97 81 ldd r25, Z+7 ; 0x07
a2c: 02 c0 rjmp .+4 ; 0xa32 <vfprintf+0x398>
a2e: 8f ef ldi r24, 0xFF ; 255
a30: 9f ef ldi r25, 0xFF ; 255
a32: 2d 96 adiw r28, 0x0d ; 13
a34: e2 e1 ldi r30, 0x12 ; 18
a36: bc c0 rjmp .+376 ; 0xbb0 <__epilogue_restores__>
00000a38 <strnlen_P>:
a38: fc 01 movw r30, r24
a3a: 05 90 lpm r0, Z+
a3c: 61 50 subi r22, 0x01 ; 1
a3e: 70 40 sbci r23, 0x00 ; 0
a40: 01 10 cpse r0, r1
a42: d8 f7 brcc .-10 ; 0xa3a <strnlen_P+0x2>
a44: 80 95 com r24
a46: 90 95 com r25
a48: 8e 0f add r24, r30
a4a: 9f 1f adc r25, r31
a4c: 08 95 ret
00000a4e <strnlen>:
a4e: fc 01 movw r30, r24
a50: 61 50 subi r22, 0x01 ; 1
a52: 70 40 sbci r23, 0x00 ; 0
a54: 01 90 ld r0, Z+
a56: 01 10 cpse r0, r1
a58: d8 f7 brcc .-10 ; 0xa50 <strnlen+0x2>
a5a: 80 95 com r24
a5c: 90 95 com r25
a5e: 8e 0f add r24, r30
a60: 9f 1f adc r25, r31
a62: 08 95 ret
00000a64 <fputc>:
a64: 0f 93 push r16
a66: 1f 93 push r17
a68: cf 93 push r28
a6a: df 93 push r29
a6c: 8c 01 movw r16, r24
a6e: eb 01 movw r28, r22
a70: 8b 81 ldd r24, Y+3 ; 0x03
a72: 81 ff sbrs r24, 1
a74: 1b c0 rjmp .+54 ; 0xaac <fputc+0x48>
a76: 82 ff sbrs r24, 2
a78: 0d c0 rjmp .+26 ; 0xa94 <fputc+0x30>
a7a: 2e 81 ldd r18, Y+6 ; 0x06
a7c: 3f 81 ldd r19, Y+7 ; 0x07
a7e: 8c 81 ldd r24, Y+4 ; 0x04
a80: 9d 81 ldd r25, Y+5 ; 0x05
a82: 28 17 cp r18, r24
a84: 39 07 cpc r19, r25
a86: 64 f4 brge .+24 ; 0xaa0 <fputc+0x3c>
a88: e8 81 ld r30, Y
a8a: f9 81 ldd r31, Y+1 ; 0x01
a8c: 01 93 st Z+, r16
a8e: f9 83 std Y+1, r31 ; 0x01
a90: e8 83 st Y, r30
a92: 06 c0 rjmp .+12 ; 0xaa0 <fputc+0x3c>
a94: e8 85 ldd r30, Y+8 ; 0x08
a96: f9 85 ldd r31, Y+9 ; 0x09
a98: 80 2f mov r24, r16
a9a: 09 95 icall
a9c: 00 97 sbiw r24, 0x00 ; 0
a9e: 31 f4 brne .+12 ; 0xaac <fputc+0x48>
aa0: 8e 81 ldd r24, Y+6 ; 0x06
aa2: 9f 81 ldd r25, Y+7 ; 0x07
aa4: 01 96 adiw r24, 0x01 ; 1
aa6: 9f 83 std Y+7, r25 ; 0x07
aa8: 8e 83 std Y+6, r24 ; 0x06
aaa: 02 c0 rjmp .+4 ; 0xab0 <fputc+0x4c>
aac: 0f ef ldi r16, 0xFF ; 255
aae: 1f ef ldi r17, 0xFF ; 255
ab0: c8 01 movw r24, r16
ab2: df 91 pop r29
ab4: cf 91 pop r28
ab6: 1f 91 pop r17
ab8: 0f 91 pop r16
aba: 08 95 ret
00000abc <__ultoa_invert>:
abc: fa 01 movw r30, r20
abe: aa 27 eor r26, r26
ac0: 28 30 cpi r18, 0x08 ; 8
ac2: 51 f1 breq .+84 ; 0xb18 <__ultoa_invert+0x5c>
ac4: 20 31 cpi r18, 0x10 ; 16
ac6: 81 f1 breq .+96 ; 0xb28 <__ultoa_invert+0x6c>
ac8: e8 94 clt
aca: 6f 93 push r22
acc: 6e 7f andi r22, 0xFE ; 254
ace: 6e 5f subi r22, 0xFE ; 254
ad0: 7f 4f sbci r23, 0xFF ; 255
ad2: 8f 4f sbci r24, 0xFF ; 255
ad4: 9f 4f sbci r25, 0xFF ; 255
ad6: af 4f sbci r26, 0xFF ; 255
ad8: b1 e0 ldi r27, 0x01 ; 1
ada: 3e d0 rcall .+124 ; 0xb58 <__ultoa_invert+0x9c>
adc: b4 e0 ldi r27, 0x04 ; 4
ade: 3c d0 rcall .+120 ; 0xb58 <__ultoa_invert+0x9c>
ae0: 67 0f add r22, r23
ae2: 78 1f adc r23, r24
ae4: 89 1f adc r24, r25
ae6: 9a 1f adc r25, r26
ae8: a1 1d adc r26, r1
aea: 68 0f add r22, r24
aec: 79 1f adc r23, r25
aee: 8a 1f adc r24, r26
af0: 91 1d adc r25, r1
af2: a1 1d adc r26, r1
af4: 6a 0f add r22, r26
af6: 71 1d adc r23, r1
af8: 81 1d adc r24, r1
afa: 91 1d adc r25, r1
afc: a1 1d adc r26, r1
afe: 20 d0 rcall .+64 ; 0xb40 <__ultoa_invert+0x84>
b00: 09 f4 brne .+2 ; 0xb04 <__ultoa_invert+0x48>
b02: 68 94 set
b04: 3f 91 pop r19
b06: 2a e0 ldi r18, 0x0A ; 10
b08: 26 9f mul r18, r22
b0a: 11 24 eor r1, r1
b0c: 30 19 sub r19, r0
b0e: 30 5d subi r19, 0xD0 ; 208
b10: 31 93 st Z+, r19
b12: de f6 brtc .-74 ; 0xaca <__ultoa_invert+0xe>
b14: cf 01 movw r24, r30
b16: 08 95 ret
b18: 46 2f mov r20, r22
b1a: 47 70 andi r20, 0x07 ; 7
b1c: 40 5d subi r20, 0xD0 ; 208
b1e: 41 93 st Z+, r20
b20: b3 e0 ldi r27, 0x03 ; 3
b22: 0f d0 rcall .+30 ; 0xb42 <__ultoa_invert+0x86>
b24: c9 f7 brne .-14 ; 0xb18 <__ultoa_invert+0x5c>
b26: f6 cf rjmp .-20 ; 0xb14 <__ultoa_invert+0x58>
b28: 46 2f mov r20, r22
b2a: 4f 70 andi r20, 0x0F ; 15
b2c: 40 5d subi r20, 0xD0 ; 208
b2e: 4a 33 cpi r20, 0x3A ; 58
b30: 18 f0 brcs .+6 ; 0xb38 <__ultoa_invert+0x7c>
b32: 49 5d subi r20, 0xD9 ; 217
b34: 31 fd sbrc r19, 1
b36: 40 52 subi r20, 0x20 ; 32
b38: 41 93 st Z+, r20
b3a: 02 d0 rcall .+4 ; 0xb40 <__ultoa_invert+0x84>
b3c: a9 f7 brne .-22 ; 0xb28 <__ultoa_invert+0x6c>
b3e: ea cf rjmp .-44 ; 0xb14 <__ultoa_invert+0x58>
b40: b4 e0 ldi r27, 0x04 ; 4
b42: a6 95 lsr r26
b44: 97 95 ror r25
b46: 87 95 ror r24
b48: 77 95 ror r23
b4a: 67 95 ror r22
b4c: ba 95 dec r27
b4e: c9 f7 brne .-14 ; 0xb42 <__ultoa_invert+0x86>
b50: 00 97 sbiw r24, 0x00 ; 0
b52: 61 05 cpc r22, r1
b54: 71 05 cpc r23, r1
b56: 08 95 ret
b58: 9b 01 movw r18, r22
b5a: ac 01 movw r20, r24
b5c: 0a 2e mov r0, r26
b5e: 06 94 lsr r0
b60: 57 95 ror r21
b62: 47 95 ror r20
b64: 37 95 ror r19
b66: 27 95 ror r18
b68: ba 95 dec r27
b6a: c9 f7 brne .-14 ; 0xb5e <__ultoa_invert+0xa2>
b6c: 62 0f add r22, r18
b6e: 73 1f adc r23, r19
b70: 84 1f adc r24, r20
b72: 95 1f adc r25, r21
b74: a0 1d adc r26, r0
b76: 08 95 ret
00000b78 <__prologue_saves__>:
b78: 2f 92 push r2
b7a: 3f 92 push r3
b7c: 4f 92 push r4
b7e: 5f 92 push r5
b80: 6f 92 push r6
b82: 7f 92 push r7
b84: 8f 92 push r8
b86: 9f 92 push r9
b88: af 92 push r10
b8a: bf 92 push r11
b8c: cf 92 push r12
b8e: df 92 push r13
b90: ef 92 push r14
b92: ff 92 push r15
b94: 0f 93 push r16
b96: 1f 93 push r17
b98: cf 93 push r28
b9a: df 93 push r29
b9c: cd b7 in r28, 0x3d ; 61
b9e: de b7 in r29, 0x3e ; 62
ba0: ca 1b sub r28, r26
ba2: db 0b sbc r29, r27
ba4: 0f b6 in r0, 0x3f ; 63
ba6: f8 94 cli
ba8: de bf out 0x3e, r29 ; 62
baa: 0f be out 0x3f, r0 ; 63
bac: cd bf out 0x3d, r28 ; 61
bae: 09 94 ijmp
00000bb0 <__epilogue_restores__>:
bb0: 2a 88 ldd r2, Y+18 ; 0x12
bb2: 39 88 ldd r3, Y+17 ; 0x11
bb4: 48 88 ldd r4, Y+16 ; 0x10
bb6: 5f 84 ldd r5, Y+15 ; 0x0f
bb8: 6e 84 ldd r6, Y+14 ; 0x0e
bba: 7d 84 ldd r7, Y+13 ; 0x0d
bbc: 8c 84 ldd r8, Y+12 ; 0x0c
bbe: 9b 84 ldd r9, Y+11 ; 0x0b
bc0: aa 84 ldd r10, Y+10 ; 0x0a
bc2: b9 84 ldd r11, Y+9 ; 0x09
bc4: c8 84 ldd r12, Y+8 ; 0x08
bc6: df 80 ldd r13, Y+7 ; 0x07
bc8: ee 80 ldd r14, Y+6 ; 0x06
bca: fd 80 ldd r15, Y+5 ; 0x05
bcc: 0c 81 ldd r16, Y+4 ; 0x04
bce: 1b 81 ldd r17, Y+3 ; 0x03
bd0: aa 81 ldd r26, Y+2 ; 0x02
bd2: b9 81 ldd r27, Y+1 ; 0x01
bd4: ce 0f add r28, r30
bd6: d1 1d adc r29, r1
bd8: 0f b6 in r0, 0x3f ; 63
bda: f8 94 cli
bdc: de bf out 0x3e, r29 ; 62
bde: 0f be out 0x3f, r0 ; 63
be0: cd bf out 0x3d, r28 ; 61
be2: ed 01 movw r28, r26
be4: 08 95 ret
00000be6 <_exit>:
be6: f8 94 cli
00000be8 <__stop_program>:
be8: ff cf rjmp .-2 ; 0xbe8 <__stop_program>