Blame | Last modification | View Log | RSS feed
1 .file "uart.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .text
11 .global __vector_30
13 __vector_30:
14 /* prologue: frame size=0 */
15 0000 1F92 push __zero_reg__
16 0002 0F92 push __tmp_reg__
17 0004 0FB6 in __tmp_reg__,__SREG__
18 0006 0F92 push __tmp_reg__
19 0008 1124 clr __zero_reg__
20 000a 8F93 push r24
21 000c 9F93 push r25
22 000e EF93 push r30
23 0010 FF93 push r31
24 /* prologue end (size=9) */
25 0012 8091 0000 lds r24,UebertragungAbgeschlossen1
26 0016 8823 tst r24
27 0018 01F4 brne .L2
28 001a 8091 0000 lds r24,ptr1.2060
29 001e 9091 0000 lds r25,(ptr1.2060)+1
30 0022 0196 adiw r24,1
31 0024 9093 0000 sts (ptr1.2060)+1,r25
32 0028 8093 0000 sts ptr1.2060,r24
33 002c FC01 movw r30,r24
34 002e E050 subi r30,lo8(-(SendeBuffer1))
35 0030 F040 sbci r31,hi8(-(SendeBuffer1))
36 0032 E081 ld r30,Z
37 0034 ED30 cpi r30,lo8(13)
38 0036 01F0 breq .L4
39 0038 8639 cpi r24,150
40 003a 9105 cpc r25,__zero_reg__
41 003c 01F4 brne .L6
42 .L4:
43 003e 1092 0000 sts (ptr1.2060)+1,__zero_reg__
44 0042 1092 0000 sts ptr1.2060,__zero_reg__
45 0046 81E0 ldi r24,lo8(1)
46 0048 8093 0000 sts UebertragungAbgeschlossen1,r24
47 .L6:
48 004c E093 CE00 sts 206,r30
49 0050 00C0 rjmp .L8
50 .L2:
51 0052 1092 0000 sts (ptr1.2060)+1,__zero_reg__
52 0056 1092 0000 sts ptr1.2060,__zero_reg__
53 .L8:
54 /* epilogue: frame size=0 */
55 005a FF91 pop r31
56 005c EF91 pop r30
57 005e 9F91 pop r25
58 0060 8F91 pop r24
59 0062 0F90 pop __tmp_reg__
60 0064 0FBE out __SREG__,__tmp_reg__
61 0066 0F90 pop __tmp_reg__
62 0068 1F90 pop __zero_reg__
63 006a 1895 reti
64 /* epilogue end (size=9) */
65 /* function __vector_30 size 54 (36) */
67 .global __vector_28
69 __vector_28:
70 /* prologue: frame size=0 */
71 006c 1F92 push __zero_reg__
72 006e 0F92 push __tmp_reg__
73 0070 0FB6 in __tmp_reg__,__SREG__
74 0072 0F92 push __tmp_reg__
75 0074 1124 clr __zero_reg__
76 0076 2F93 push r18
77 0078 8F93 push r24
78 007a 9F93 push r25
79 007c EF93 push r30
80 007e FF93 push r31
81 /* prologue end (size=10) */
82 0080 8091 CE00 lds r24,206
83 0084 8093 0000 sts SioTmp1,r24
84 0088 9091 0000 lds r25,buf_ptr1.2073
85 008c 9639 cpi r25,lo8(-106)
86 008e 00F0 brlo .L10
87 0090 1092 0000 sts UartState1.2074,__zero_reg__
88 .L10:
89 0094 2091 0000 lds r18,SioTmp1
90 0098 2D30 cpi r18,lo8(13)
91 009a 01F4 brne .L12
92 009c 8091 0000 lds r24,UartState1.2074
93 00a0 8230 cpi r24,lo8(2)
94 00a2 01F4 brne .L12
95 00a4 1092 0000 sts UartState1.2074,__zero_reg__
96 00a8 81E0 ldi r24,lo8(1)
97 00aa 8093 0000 sts NeuerDatensatzEmpfangen1,r24
98 00ae 9093 0000 sts AnzahlEmpfangsBytes1,r25
99 00b2 E92F mov r30,r25
100 00b4 FF27 clr r31
101 00b6 E050 subi r30,lo8(-(RxdBuffer1))
102 00b8 F040 sbci r31,hi8(-(RxdBuffer1))
103 00ba 2083 st Z,r18
104 00bc 00C0 rjmp .L24
105 .L12:
106 00be 8091 0000 lds r24,UartState1.2074
107 00c2 8130 cpi r24,lo8(1)
108 00c4 01F0 breq .L18
109 00c6 8130 cpi r24,lo8(1)
110 00c8 00F0 brlo .L17
111 00ca 8230 cpi r24,lo8(2)
112 00cc 01F4 brne .L25
113 00ce 00C0 rjmp .L19
114 .L17:
115 00d0 8091 0000 lds r24,SioTmp1
116 00d4 8332 cpi r24,lo8(35)
117 00d6 01F4 brne .L24
118 00d8 8091 0000 lds r24,NeuerDatensatzEmpfangen1
119 00dc 8823 tst r24
120 00de 01F4 brne .L24
121 00e0 91E0 ldi r25,lo8(1)
122 00e2 9093 0000 sts UartState1.2074,r25
123 00e6 8091 0000 lds r24,SioTmp1
124 00ea 8093 0000 sts RxdBuffer1,r24
125 00ee 00C0 rjmp .L26
126 .L18:
127 00f0 82E0 ldi r24,lo8(2)
128 00f2 8093 0000 sts UartState1.2074,r24
129 00f6 E92F mov r30,r25
130 00f8 FF27 clr r31
131 00fa 8091 0000 lds r24,SioTmp1
132 00fe E050 subi r30,lo8(-(RxdBuffer1))
133 0100 F040 sbci r31,hi8(-(RxdBuffer1))
134 0102 8083 st Z,r24
135 .L27:
136 0104 9F5F subi r25,lo8(-(1))
137 .L26:
138 0106 9093 0000 sts buf_ptr1.2073,r25
139 010a 00C0 rjmp .L24
140 .L19:
141 010c E92F mov r30,r25
142 010e FF27 clr r31
143 0110 8091 0000 lds r24,SioTmp1
144 0114 E050 subi r30,lo8(-(RxdBuffer1))
145 0116 F040 sbci r31,hi8(-(RxdBuffer1))
146 0118 8083 st Z,r24
147 011a 9639 cpi r25,lo8(-106)
148 011c 00F0 brlo .L27
149 .L25:
150 011e 1092 0000 sts UartState1.2074,__zero_reg__
151 .L24:
152 /* epilogue: frame size=0 */
153 0122 FF91 pop r31
154 0124 EF91 pop r30
155 0126 9F91 pop r25
156 0128 8F91 pop r24
157 012a 2F91 pop r18
158 012c 0F90 pop __tmp_reg__
159 012e 0FBE out __SREG__,__tmp_reg__
160 0130 0F90 pop __tmp_reg__
161 0132 1F90 pop __zero_reg__
162 0134 1895 reti
163 /* epilogue end (size=10) */
164 /* function __vector_28 size 101 (81) */
166 .global __vector_22
168 __vector_22:
169 /* prologue: frame size=0 */
170 0136 1F92 push __zero_reg__
171 0138 0F92 push __tmp_reg__
172 013a 0FB6 in __tmp_reg__,__SREG__
173 013c 0F92 push __tmp_reg__
174 013e 1124 clr __zero_reg__
175 0140 8F93 push r24
176 0142 9F93 push r25
177 0144 EF93 push r30
178 0146 FF93 push r31
179 /* prologue end (size=9) */
180 0148 8091 0000 lds r24,UebertragungAbgeschlossen
181 014c 8823 tst r24
182 014e 01F4 brne .L29
183 0150 8091 0000 lds r24,ptr.2100
184 0154 9091 0000 lds r25,(ptr.2100)+1
185 0158 0196 adiw r24,1
186 015a 9093 0000 sts (ptr.2100)+1,r25
187 015e 8093 0000 sts ptr.2100,r24
188 0162 FC01 movw r30,r24
189 0164 E050 subi r30,lo8(-(SendeBuffer))
190 0166 F040 sbci r31,hi8(-(SendeBuffer))
191 0168 E081 ld r30,Z
192 016a ED30 cpi r30,lo8(13)
193 016c 01F0 breq .L31
194 016e 8639 cpi r24,150
195 0170 9105 cpc r25,__zero_reg__
196 0172 01F4 brne .L33
197 .L31:
198 0174 1092 0000 sts (ptr.2100)+1,__zero_reg__
199 0178 1092 0000 sts ptr.2100,__zero_reg__
200 017c 81E0 ldi r24,lo8(1)
201 017e 8093 0000 sts UebertragungAbgeschlossen,r24
202 .L33:
203 0182 E093 C600 sts 198,r30
204 0186 00C0 rjmp .L35
205 .L29:
206 0188 1092 0000 sts (ptr.2100)+1,__zero_reg__
207 018c 1092 0000 sts ptr.2100,__zero_reg__
208 .L35:
209 /* epilogue: frame size=0 */
210 0190 FF91 pop r31
211 0192 EF91 pop r30
212 0194 9F91 pop r25
213 0196 8F91 pop r24
214 0198 0F90 pop __tmp_reg__
215 019a 0FBE out __SREG__,__tmp_reg__
216 019c 0F90 pop __tmp_reg__
217 019e 1F90 pop __zero_reg__
218 01a0 1895 reti
219 /* epilogue end (size=9) */
220 /* function __vector_22 size 54 (36) */
222 .global __vector_20
224 __vector_20:
225 /* prologue: frame size=0 */
226 01a2 1F92 push __zero_reg__
227 01a4 0F92 push __tmp_reg__
228 01a6 0FB6 in __tmp_reg__,__SREG__
229 01a8 0F92 push __tmp_reg__
230 01aa 1124 clr __zero_reg__
231 01ac 2F93 push r18
232 01ae 3F93 push r19
233 01b0 4F93 push r20
234 01b2 8F93 push r24
235 01b4 9F93 push r25
236 01b6 AF93 push r26
237 01b8 BF93 push r27
238 01ba CF93 push r28
239 01bc DF93 push r29
240 01be EF93 push r30
241 01c0 FF93 push r31
242 /* prologue end (size=16) */
243 01c2 8091 C600 lds r24,198
244 01c6 8093 0000 sts SioTmp,r24
245 01ca 4091 0000 lds r20,buf_ptr.2116
246 01ce 4639 cpi r20,lo8(-106)
247 01d0 00F0 brlo .L37
248 01d2 1092 0000 sts UartState.2117,__zero_reg__
249 .L37:
250 01d6 8091 0000 lds r24,SioTmp
251 01da 8D30 cpi r24,lo8(13)
252 01dc 01F0 breq .+2
253 01de 00C0 rjmp .L39
254 01e0 8091 0000 lds r24,UartState.2117
255 01e4 8230 cpi r24,lo8(2)
256 01e6 01F0 breq .+2
257 01e8 00C0 rjmp .L39
258 01ea 1092 0000 sts UartState.2117,__zero_reg__
259 01ee A42F mov r26,r20
260 01f0 BB27 clr r27
261 01f2 FD01 movw r30,r26
262 01f4 E050 subi r30,lo8(-(RxdBuffer-2))
263 01f6 F040 sbci r31,hi8(-(RxdBuffer-2))
264 01f8 3081 ld r19,Z
265 01fa ED01 movw r28,r26
266 01fc C050 subi r28,lo8(-(RxdBuffer-1))
267 01fe D040 sbci r29,hi8(-(RxdBuffer-1))
268 0200 2881 ld r18,Y
269 0202 8091 0000 lds r24,crc.2113
270 0206 9091 0000 lds r25,(crc.2113)+1
271 020a 831B sub r24,r19
272 020c 9109 sbc r25,__zero_reg__
273 020e 821B sub r24,r18
274 0210 9109 sbc r25,__zero_reg__
275 0212 9F70 andi r25,hi8(4095)
276 0214 9093 0000 sts (crc.2113)+1,r25
277 0218 8093 0000 sts crc.2113,r24
278 021c 9C01 movw r18,r24
279 021e 96E0 ldi r25,6
280 0220 3695 1: lsr r19
281 0222 2795 ror r18
282 0224 9A95 dec r25
283 0226 01F4 brne 1b
284 0228 235C subi r18,lo8(-(61))
285 022a 2093 0000 sts crc1.2114,r18
286 022e 982F mov r25,r24
287 0230 9F73 andi r25,lo8(63)
288 0232 935C subi r25,lo8(-(61))
289 0234 9093 0000 sts crc2.2115,r25
290 0238 8081 ld r24,Z
291 023a 2817 cp r18,r24
292 023c 01F4 brne .L42
293 023e 8881 ld r24,Y
294 0240 9817 cp r25,r24
295 0242 01F4 brne .L42
296 0244 91E0 ldi r25,lo8(1)
297 0246 00C0 rjmp .L45
298 .L42:
299 0248 8091 0000 lds r24,CntCrcError
300 024c 8F5F subi r24,lo8(-(1))
301 024e 8093 0000 sts CntCrcError,r24
302 0252 90E0 ldi r25,lo8(0)
303 .L45:
304 0254 8091 0000 lds r24,NeuerDatensatzEmpfangen
305 0258 8823 tst r24
306 025a 01F0 breq .+2
307 025c 00C0 rjmp .L59
308 025e 9923 tst r25
309 0260 01F4 brne .+2
310 0262 00C0 rjmp .L59
311 0264 81E0 ldi r24,lo8(1)
312 0266 8093 0000 sts NeuerDatensatzEmpfangen,r24
313 026a 4093 0000 sts AnzahlEmpfangsBytes,r20
314 026e A050 subi r26,lo8(-(RxdBuffer))
315 0270 B040 sbci r27,hi8(-(RxdBuffer))
316 0272 8DE0 ldi r24,lo8(13)
317 0274 8C93 st X,r24
318 0276 8091 0000 lds r24,RxdBuffer+2
319 027a 8235 cpi r24,lo8(82)
320 027c 01F0 breq .+2
321 027e 00C0 rjmp .L59
322 0280 88E1 ldi r24,lo8(24)
323 0282 90E0 ldi r25,hi8(24)
324 0284 2CE0 ldi r18,lo8(12)
325 /* #APP */
326 0286 0FB6 in __tmp_reg__,__SREG__
327 0288 F894 cli
328 028a A895 wdr
329 028c 8093 6000 sts 96,r24
330 0290 0FBE out __SREG__,__tmp_reg__
331 0292 2093 6000 sts 96,r18
332 /* #NOAPP */
333 0296 00C0 rjmp .L59
334 .L39:
335 0298 8091 0000 lds r24,UartState.2117
336 029c 8130 cpi r24,lo8(1)
337 029e 01F0 breq .L52
338 02a0 8130 cpi r24,lo8(1)
339 02a2 00F0 brlo .L51
340 02a4 8230 cpi r24,lo8(2)
341 02a6 01F4 brne .L60
342 02a8 00C0 rjmp .L53
343 .L51:
344 02aa 8091 0000 lds r24,SioTmp
345 02ae 8332 cpi r24,lo8(35)
346 02b0 01F4 brne .L59
347 02b2 8091 0000 lds r24,NeuerDatensatzEmpfangen
348 02b6 8823 tst r24
349 02b8 01F4 brne .L59
350 02ba 91E0 ldi r25,lo8(1)
351 02bc 9093 0000 sts UartState.2117,r25
352 02c0 8091 0000 lds r24,SioTmp
353 02c4 8093 0000 sts RxdBuffer,r24
354 02c8 9093 0000 sts buf_ptr.2116,r25
355 02cc 8091 0000 lds r24,SioTmp
356 02d0 9927 clr r25
357 02d2 00C0 rjmp .L61
358 .L52:
359 02d4 82E0 ldi r24,lo8(2)
360 02d6 8093 0000 sts UartState.2117,r24
361 02da E42F mov r30,r20
362 02dc FF27 clr r31
363 02de 8091 0000 lds r24,SioTmp
364 02e2 E050 subi r30,lo8(-(RxdBuffer))
365 02e4 F040 sbci r31,hi8(-(RxdBuffer))
366 02e6 8083 st Z,r24
367 .L63:
368 02e8 4F5F subi r20,lo8(-(1))
369 02ea 4093 0000 sts buf_ptr.2116,r20
370 .L62:
371 02ee 2091 0000 lds r18,SioTmp
372 02f2 8091 0000 lds r24,crc.2113
373 02f6 9091 0000 lds r25,(crc.2113)+1
374 02fa 820F add r24,r18
375 02fc 911D adc r25,__zero_reg__
376 .L61:
377 02fe 9093 0000 sts (crc.2113)+1,r25
378 0302 8093 0000 sts crc.2113,r24
379 0306 00C0 rjmp .L59
380 .L53:
381 0308 E42F mov r30,r20
382 030a FF27 clr r31
383 030c 8091 0000 lds r24,SioTmp
384 0310 E050 subi r30,lo8(-(RxdBuffer))
385 0312 F040 sbci r31,hi8(-(RxdBuffer))
386 0314 8083 st Z,r24
387 0316 4639 cpi r20,lo8(-106)
388 0318 00F0 brlo .L63
389 031a 1092 0000 sts UartState.2117,__zero_reg__
390 031e 00C0 rjmp .L62
391 .L60:
392 0320 1092 0000 sts UartState.2117,__zero_reg__
393 .L59:
394 /* epilogue: frame size=0 */
395 0324 FF91 pop r31
396 0326 EF91 pop r30
397 0328 DF91 pop r29
398 032a CF91 pop r28
399 032c BF91 pop r27
400 032e AF91 pop r26
401 0330 9F91 pop r25
402 0332 8F91 pop r24
403 0334 4F91 pop r20
404 0336 3F91 pop r19
405 0338 2F91 pop r18
406 033a 0F90 pop __tmp_reg__
407 033c 0FBE out __SREG__,__tmp_reg__
408 033e 0F90 pop __tmp_reg__
409 0340 1F90 pop __zero_reg__
410 0342 1895 reti
411 /* epilogue end (size=16) */
412 /* function __vector_20 size 214 (182) */
414 .global AddCRC
416 AddCRC:
417 /* prologue: frame size=0 */
418 /* prologue end (size=0) */
419 0344 DC01 movw r26,r24
420 0346 20E0 ldi r18,lo8(0)
421 0348 30E0 ldi r19,hi8(0)
422 034a 40E0 ldi r20,lo8(0)
423 034c 50E0 ldi r21,hi8(0)
424 034e E0E0 ldi r30,lo8(SendeBuffer)
425 0350 F0E0 ldi r31,hi8(SendeBuffer)
426 0352 00C0 rjmp .L65
427 .L66:
428 0354 8191 ld r24,Z+
429 0356 280F add r18,r24
430 0358 311D adc r19,__zero_reg__
431 035a 4F5F subi r20,lo8(-(1))
432 035c 5F4F sbci r21,hi8(-(1))
433 .L65:
434 035e 4A17 cp r20,r26
435 0360 5B07 cpc r21,r27
436 0362 01F4 brne .L66
437 0364 3F70 andi r19,hi8(4095)
438 0366 C901 movw r24,r18
439 0368 36E0 ldi r19,6
440 036a 9695 1: lsr r25
441 036c 8795 ror r24
442 036e 3A95 dec r19
443 0370 01F4 brne 1b
444 0372 835C subi r24,lo8(-(61))
445 0374 FD01 movw r30,r26
446 0376 E050 subi r30,lo8(-(SendeBuffer))
447 0378 F040 sbci r31,hi8(-(SendeBuffer))
448 037a 8083 st Z,r24
449 037c 1196 adiw r26,1
450 037e 2F73 andi r18,lo8(63)
451 0380 235C subi r18,lo8(-(61))
452 0382 FD01 movw r30,r26
453 0384 E050 subi r30,lo8(-(SendeBuffer))
454 0386 F040 sbci r31,hi8(-(SendeBuffer))
455 0388 2083 st Z,r18
456 038a A050 subi r26,lo8(-(SendeBuffer+1))
457 038c B040 sbci r27,hi8(-(SendeBuffer+1))
458 038e 8DE0 ldi r24,lo8(13)
459 0390 8C93 st X,r24
460 0392 1092 0000 sts UebertragungAbgeschlossen,__zero_reg__
461 0396 8091 0000 lds r24,SendeBuffer
462 039a 8093 C600 sts 198,r24
463 /* epilogue: frame size=0 */
464 039e 0895 ret
465 /* epilogue end (size=1) */
466 /* function AddCRC size 47 (46) */
468 .global SendOutRXTunnelData
470 SendOutRXTunnelData:
471 /* prologue: frame size=0 */
472 /* prologue end (size=0) */
473 03a0 262F mov r18,r22
474 03a2 E0E0 ldi r30,lo8(SendeBuffer1)
475 03a4 F0E0 ldi r31,hi8(SendeBuffer1)
476 03a6 DC01 movw r26,r24
477 03a8 00C0 rjmp .L70
478 .L71:
479 03aa 8D91 ld r24,X+
480 03ac 8193 st Z+,r24
481 03ae 2150 subi r18,lo8(-(-1))
482 .L70:
483 03b0 2223 tst r18
484 03b2 01F4 brne .L71
485 03b4 E62F mov r30,r22
486 03b6 FF27 clr r31
487 03b8 E050 subi r30,lo8(-(SendeBuffer1))
488 03ba F040 sbci r31,hi8(-(SendeBuffer1))
489 03bc 8DE0 ldi r24,lo8(13)
490 03be 8083 st Z,r24
491 03c0 1092 0000 sts UebertragungAbgeschlossen1,__zero_reg__
492 03c4 8091 0000 lds r24,SendeBuffer1
493 03c8 8093 CE00 sts 206,r24
494 /* epilogue: frame size=0 */
495 03cc 0895 ret
496 /* epilogue end (size=1) */
497 /* function SendOutRXTunnelData size 23 (22) */
499 .global SendOutTXTunnelData
501 SendOutTXTunnelData:
502 /* prologue: frame size=0 */
503 /* prologue end (size=0) */
504 03ce 262F mov r18,r22
505 03d0 E0E0 ldi r30,lo8(SendeBuffer)
506 03d2 F0E0 ldi r31,hi8(SendeBuffer)
507 03d4 DC01 movw r26,r24
508 03d6 00C0 rjmp .L75
509 .L76:
510 03d8 8D91 ld r24,X+
511 03da 8193 st Z+,r24
512 03dc 2150 subi r18,lo8(-(-1))
513 .L75:
514 03de 2223 tst r18
515 03e0 01F4 brne .L76
516 03e2 E62F mov r30,r22
517 03e4 FF27 clr r31
518 03e6 E050 subi r30,lo8(-(SendeBuffer))
519 03e8 F040 sbci r31,hi8(-(SendeBuffer))
520 03ea 8DE0 ldi r24,lo8(13)
521 03ec 8083 st Z,r24
522 03ee 1092 0000 sts UebertragungAbgeschlossen,__zero_reg__
523 03f2 1092 0000 sts NeuerDatensatzEmpfangen1,__zero_reg__
524 03f6 8091 0000 lds r24,SendeBuffer
525 03fa 8093 C600 sts 198,r24
526 /* epilogue: frame size=0 */
527 03fe 0895 ret
528 /* epilogue end (size=1) */
529 /* function SendOutTXTunnelData size 25 (24) */
531 .global SendOutData
533 SendOutData:
534 /* prologue: frame size=0 */
535 0400 EF92 push r14
536 0402 FF92 push r15
537 0404 0F93 push r16
538 0406 1F93 push r17
539 0408 CF93 push r28
540 040a DF93 push r29
541 /* prologue end (size=6) */
542 040c 7A01 movw r14,r20
543 040e 722F mov r23,r18
544 0410 93E2 ldi r25,lo8(35)
545 0412 9093 0000 sts SendeBuffer,r25
546 0416 6093 0000 sts SendeBuffer+1,r22
547 041a 8093 0000 sts SendeBuffer+2,r24
548 041e 03E0 ldi r16,lo8(3)
549 0420 10E0 ldi r17,hi8(3)
550 0422 60E0 ldi r22,lo8(0)
551 0424 A0E0 ldi r26,lo8(SendeBuffer+3)
552 0426 B0E0 ldi r27,hi8(SendeBuffer+3)
553 0428 00C0 rjmp .L80
554 .L81:
555 042a F701 movw r30,r14
556 042c E60F add r30,r22
557 042e F11D adc r31,__zero_reg__
558 0430 9081 ld r25,Z
559 0432 6F5F subi r22,lo8(-(1))
560 0434 7150 subi r23,lo8(-(-1))
561 0436 01F4 brne .L82
562 0438 E0E0 ldi r30,lo8(0)
563 043a 40E0 ldi r20,lo8(0)
564 043c 00C0 rjmp .L84
565 .L82:
566 043e F701 movw r30,r14
567 0440 E60F add r30,r22
568 0442 F11D adc r31,__zero_reg__
569 0444 4081 ld r20,Z
570 0446 6F5F subi r22,lo8(-(1))
571 0448 7150 subi r23,lo8(-(-1))
572 044a 01F4 brne .L85
573 044c E0E0 ldi r30,lo8(0)
574 044e 00C0 rjmp .L84
575 .L85:
576 0450 F701 movw r30,r14
577 0452 E60F add r30,r22
578 0454 F11D adc r31,__zero_reg__
579 0456 E081 ld r30,Z
580 0458 6F5F subi r22,lo8(-(1))
581 045a 7150 subi r23,lo8(-(-1))
582 .L84:
583 045c 892F mov r24,r25
584 045e 8695 lsr r24
585 0460 8695 lsr r24
586 0462 835C subi r24,lo8(-(61))
587 0464 8C93 st X,r24
588 0466 5527 clr r21
589 0468 892F mov r24,r25
590 046a 9927 clr r25
591 046c 8370 andi r24,lo8(3)
592 046e 9070 andi r25,hi8(3)
593 0470 24E0 ldi r18,4
594 0472 880F 1: lsl r24
595 0474 991F rol r25
596 0476 2A95 dec r18
597 0478 01F4 brne 1b
598 047a 9A01 movw r18,r20
599 047c 94E0 ldi r25,4
600 047e 3695 1: lsr r19
601 0480 2795 ror r18
602 0482 9A95 dec r25
603 0484 01F4 brne 1b
604 0486 822B or r24,r18
605 0488 835C subi r24,lo8(-(61))
606 048a ED01 movw r28,r26
607 048c 8983 std Y+1,r24
608 048e 4F70 andi r20,lo8(15)
609 0490 5070 andi r21,hi8(15)
610 0492 440F lsl r20
611 0494 551F rol r21
612 0496 440F lsl r20
613 0498 551F rol r21
614 049a 8E2F mov r24,r30
615 049c 8295 swap r24
616 049e 8695 lsr r24
617 04a0 8695 lsr r24
618 04a2 8370 andi r24,0x3
619 04a4 842B or r24,r20
620 04a6 835C subi r24,lo8(-(61))
621 04a8 8A83 std Y+2,r24
622 04aa EF73 andi r30,lo8(63)
623 04ac E35C subi r30,lo8(-(61))
624 04ae EB83 std Y+3,r30
625 04b0 0C5F subi r16,lo8(-(4))
626 04b2 1F4F sbci r17,hi8(-(4))
627 04b4 1496 adiw r26,4
628 .L80:
629 04b6 7723 tst r23
630 04b8 01F0 breq .+2
631 04ba 00C0 rjmp .L81
632 04bc C801 movw r24,r16
633 04be 0E94 0000 call AddCRC
634 /* epilogue: frame size=0 */
635 04c2 DF91 pop r29
636 04c4 CF91 pop r28
637 04c6 1F91 pop r17
638 04c8 0F91 pop r16
639 04ca FF90 pop r15
640 04cc EF90 pop r14
641 04ce 0895 ret
642 /* epilogue end (size=7) */
643 /* function SendOutData size 106 (93) */
645 .global Decode64
647 Decode64:
648 /* prologue: frame size=0 */
649 04d0 1F93 push r17
650 04d2 CF93 push r28
651 04d4 DF93 push r29
652 /* prologue end (size=3) */
653 04d6 EC01 movw r28,r24
654 04d8 70E0 ldi r23,lo8(0)
655 04da A22F mov r26,r18
656 04dc BB27 clr r27
657 04de 1297 sbiw r26,2
658 04e0 00C0 rjmp .L90
659 .L91:
660 04e2 E42F mov r30,r20
661 04e4 FF27 clr r31
662 04e6 E050 subi r30,lo8(-(RxdBuffer))
663 04e8 F040 sbci r31,hi8(-(RxdBuffer))
664 04ea 3081 ld r19,Z
665 04ec 4F5F subi r20,lo8(-(1))
666 04ee E42F mov r30,r20
667 04f0 FF27 clr r31
668 04f2 E050 subi r30,lo8(-(RxdBuffer))
669 04f4 F040 sbci r31,hi8(-(RxdBuffer))
670 04f6 5081 ld r21,Z
671 04f8 4F5F subi r20,lo8(-(1))
672 04fa E42F mov r30,r20
673 04fc FF27 clr r31
674 04fe E050 subi r30,lo8(-(RxdBuffer))
675 0500 F040 sbci r31,hi8(-(RxdBuffer))
676 0502 1081 ld r17,Z
677 0504 4F5F subi r20,lo8(-(1))
678 0506 E42F mov r30,r20
679 0508 FF27 clr r31
680 050a E050 subi r30,lo8(-(RxdBuffer))
681 050c F040 sbci r31,hi8(-(RxdBuffer))
682 050e 2081 ld r18,Z
683 0510 4F5F subi r20,lo8(-(1))
684 0512 842F mov r24,r20
685 0514 9927 clr r25
686 0516 A817 cp r26,r24
687 0518 B907 cpc r27,r25
688 051a 04F0 brlt .L96
689 051c 5D53 subi r21,lo8(-(-61))
690 051e FE01 movw r30,r28
691 0520 E70F add r30,r23
692 0522 F11D adc r31,__zero_reg__
693 0524 3D53 subi r19,lo8(-(-61))
694 0526 330F lsl r19
695 0528 330F lsl r19
696 052a 852F mov r24,r21
697 052c 8295 swap r24
698 052e 8F70 andi r24,0x0f
699 0530 382B or r19,r24
700 0532 3083 st Z,r19
701 0534 6130 cpi r22,lo8(1)
702 0536 01F0 breq .L96
703 0538 912F mov r25,r17
704 053a 9D53 subi r25,lo8(-(-61))
705 053c 7F5F subi r23,lo8(-(1))
706 053e FE01 movw r30,r28
707 0540 E70F add r30,r23
708 0542 F11D adc r31,__zero_reg__
709 0544 7150 subi r23,lo8(-(-1))
710 0546 5295 swap r21
711 0548 507F andi r21,0xf0
712 054a 892F mov r24,r25
713 054c 8695 lsr r24
714 054e 8695 lsr r24
715 0550 582B or r21,r24
716 0552 5083 st Z,r21
717 0554 6350 subi r22,lo8(-(-3))
718 0556 6F3F cpi r22,lo8(-1)
719 0558 01F0 breq .L96
720 055a 7E5F subi r23,lo8(-(2))
721 055c FE01 movw r30,r28
722 055e E70F add r30,r23
723 0560 F11D adc r31,__zero_reg__
724 0562 9295 swap r25
725 0564 990F lsl r25
726 0566 990F lsl r25
727 0568 907C andi r25,0xc0
728 056a 2D53 subi r18,lo8(-(-61))
729 056c 922B or r25,r18
730 056e 9083 st Z,r25
731 0570 7F5F subi r23,lo8(-(1))
732 .L90:
733 0572 6623 tst r22
734 0574 01F0 breq .+2
735 0576 00C0 rjmp .L91
736 .L96:
737 /* epilogue: frame size=0 */
738 0578 DF91 pop r29
739 057a CF91 pop r28
740 057c 1F91 pop r17
741 057e 0895 ret
742 /* epilogue end (size=4) */
743 /* function Decode64 size 88 (81) */
745 .global uart_putchar
747 uart_putchar:
748 /* prologue: frame size=0 */
749 0580 1F93 push r17
750 /* prologue end (size=1) */
751 0582 182F mov r17,r24
752 0584 8A30 cpi r24,lo8(10)
753 0586 01F4 brne .L102
754 0588 8DE0 ldi r24,lo8(13)
755 058a 0E94 0000 call uart_putchar
756 .L102:
757 058e 8091 C000 lds r24,192
758 0592 85FF sbrs r24,5
759 0594 00C0 rjmp .L102
760 0596 1093 C600 sts 198,r17
761 059a 80E0 ldi r24,lo8(0)
762 059c 90E0 ldi r25,hi8(0)
763 /* epilogue: frame size=0 */
764 059e 1F91 pop r17
765 05a0 0895 ret
766 /* epilogue end (size=2) */
767 /* function uart_putchar size 17 (14) */
769 .global WriteProgramData
771 WriteProgramData:
772 /* prologue: frame size=0 */
773 /* prologue end (size=0) */
774 /* epilogue: frame size=0 */
775 05a2 0895 ret
776 /* epilogue end (size=1) */
777 /* function WriteProgramData size 1 (0) */
779 .global UART_Init
781 UART_Init:
782 /* prologue: frame size=0 */
783 /* prologue end (size=0) */
784 05a4 E1EC ldi r30,lo8(193)
785 05a6 F0E0 ldi r31,hi8(193)
786 05a8 98E1 ldi r25,lo8(24)
787 05aa 9083 st Z,r25
788 05ac A0EC ldi r26,lo8(192)
789 05ae B0E0 ldi r27,hi8(192)
790 05b0 8C91 ld r24,X
791 05b2 8260 ori r24,lo8(2)
792 05b4 8C93 st X,r24
793 05b6 8081 ld r24,Z
794 05b8 8068 ori r24,lo8(-128)
795 05ba 8083 st Z,r24
796 05bc 8081 ld r24,Z
797 05be 8064 ori r24,lo8(64)
798 05c0 8083 st Z,r24
799 05c2 8AE2 ldi r24,lo8(42)
800 05c4 8093 C400 sts 196,r24
801 05c8 E9EC ldi r30,lo8(201)
802 05ca F0E0 ldi r31,hi8(201)
803 05cc 9083 st Z,r25
804 05ce A8EC ldi r26,lo8(200)
805 05d0 B0E0 ldi r27,hi8(200)
806 05d2 8C91 ld r24,X
807 05d4 8260 ori r24,lo8(2)
808 05d6 8C93 st X,r24
809 05d8 8081 ld r24,Z
810 05da 8068 ori r24,lo8(-128)
811 05dc 8083 st Z,r24
812 05de 8081 ld r24,Z
813 05e0 8064 ori r24,lo8(64)
814 05e2 8083 st Z,r24
815 05e4 8AE2 ldi r24,lo8(42)
816 05e6 90E0 ldi r25,hi8(42)
817 05e8 9093 CD00 sts (204)+1,r25
818 05ec 8093 CC00 sts 204,r24
819 05f0 88EC ldi r24,lo8(200)
820 05f2 90E0 ldi r25,hi8(200)
821 05f4 0E94 0000 call SetDelay
822 05f8 9093 0000 sts (Debug_Timer)+1,r25
823 05fc 8093 0000 sts Debug_Timer,r24
824 /* epilogue: frame size=0 */
825 0600 0895 ret
826 /* epilogue end (size=1) */
827 /* function UART_Init size 47 (46) */
829 .global DatenUebertragung
831 DatenUebertragung:
832 /* prologue: frame size=0 */
833 /* prologue end (size=0) */
834 0602 8091 0000 lds r24,UebertragungAbgeschlossen
835 0606 8823 tst r24
836 0608 01F4 brne .+2
837 060a 00C0 rjmp .L135
838 060c 8091 0000 lds r24,NeuerDatensatzEmpfangen1
839 0610 8823 tst r24
840 0612 01F0 breq .L112
841 0614 8091 0000 lds r24,UebertragungAbgeschlossen
842 0618 8823 tst r24
843 061a 01F0 breq .L112
844 061c 6091 0000 lds r22,AnzahlEmpfangsBytes1
845 0620 80E0 ldi r24,lo8(RxdBuffer1)
846 0622 90E0 ldi r25,hi8(RxdBuffer1)
847 0624 0E94 0000 call SendOutTXTunnelData
848 .L112:
849 0628 8091 0000 lds r24,ControlReceived
850 062c 8823 tst r24
851 062e 01F0 breq .L115
852 0630 8091 0000 lds r24,UebertragungAbgeschlossen
853 0634 8823 tst r24
854 0636 01F0 breq .L115
855 0638 21E0 ldi r18,lo8(1)
856 063a 40E0 ldi r20,lo8(ControlOut)
857 063c 50E0 ldi r21,hi8(ControlOut)
858 063e 6091 0000 lds r22,MeineSlaveAdresse
859 0642 83E4 ldi r24,lo8(67)
860 0644 0E94 0000 call SendOutData
861 0648 1092 0000 sts ControlReceived,__zero_reg__
862 .L115:
863 064c 8091 0000 lds r24,DebugGetAnforderung
864 0650 8823 tst r24
865 0652 01F0 breq .L118
866 0654 8091 0000 lds r24,UebertragungAbgeschlossen
867 0658 8823 tst r24
868 065a 01F0 breq .L118
869 065c 2BE0 ldi r18,lo8(11)
870 065e 40E0 ldi r20,lo8(DebugIn)
871 0660 50E0 ldi r21,hi8(DebugIn)
872 0662 6091 0000 lds r22,MeineSlaveAdresse
873 0666 87E4 ldi r24,lo8(71)
874 0668 0E94 0000 call SendOutData
875 066c 1092 0000 sts DebugGetAnforderung,__zero_reg__
876 .L118:
877 0670 8091 0000 lds r24,Debug_Timer
878 0674 9091 0000 lds r25,(Debug_Timer)+1
879 0678 0E94 0000 call CheckDelay
880 067c 8823 tst r24
881 067e 01F4 brne .L121
882 0680 8091 0000 lds r24,DebugDataAnforderung
883 0684 8823 tst r24
884 0686 01F0 breq .L123
885 .L121:
886 0688 8091 0000 lds r24,UebertragungAbgeschlossen
887 068c 8823 tst r24
888 068e 01F0 breq .L123
889 0690 22E4 ldi r18,lo8(66)
890 0692 40E0 ldi r20,lo8(DebugOut)
891 0694 50E0 ldi r21,hi8(DebugOut)
892 0696 6091 0000 lds r22,MeineSlaveAdresse
893 069a 84E4 ldi r24,lo8(68)
894 069c 0E94 0000 call SendOutData
895 06a0 1092 0000 sts DebugDataAnforderung,__zero_reg__
896 06a4 84EF ldi r24,lo8(500)
897 06a6 91E0 ldi r25,hi8(500)
898 06a8 0E94 0000 call SetDelay
899 06ac 9093 0000 sts (Debug_Timer)+1,r25
900 06b0 8093 0000 sts Debug_Timer,r24
901 .L123:
902 06b4 6091 0000 lds r22,DebugTextAnforderung
903 06b8 6F3F cpi r22,lo8(-1)
904 06ba 01F0 breq .L125
905 06bc 462F mov r20,r22
906 06be 5527 clr r21
907 06c0 34E0 ldi r19,4
908 06c2 440F 1: lsl r20
909 06c4 551F rol r21
910 06c6 3A95 dec r19
911 06c8 01F4 brne 1b
912 06ca 4050 subi r20,lo8(-(ANALOG_TEXT))
913 06cc 5040 sbci r21,hi8(-(ANALOG_TEXT))
914 06ce 605D subi r22,lo8(-(48))
915 06d0 20E1 ldi r18,lo8(16)
916 06d2 81E4 ldi r24,lo8(65)
917 06d4 0E94 0000 call SendOutData
918 06d8 8FEF ldi r24,lo8(-1)
919 06da 8093 0000 sts DebugTextAnforderung,r24
920 .L125:
921 06de 8091 0000 lds r24,DebugDisplayAnforderung
922 06e2 8823 tst r24
923 06e4 01F0 breq .L127
924 06e6 8091 0000 lds r24,UebertragungAbgeschlossen
925 06ea 8823 tst r24
926 06ec 01F0 breq .L127
927 06ee 0E94 0000 call Menu
928 06f2 1092 0000 sts DebugDisplayAnforderung,__zero_reg__
929 06f6 3091 0000 lds r19,RemotePollDisplayLine
930 06fa 932F mov r25,r19
931 06fc 9F5F subi r25,lo8(-(1))
932 06fe 9093 0000 sts RemotePollDisplayLine,r25
933 0702 9430 cpi r25,lo8(4)
934 0704 01F0 breq .L130
935 0706 8091 0000 lds r24,NurKanalAnforderung
936 070a 8823 tst r24
937 070c 01F0 breq .L132
938 .L130:
939 070e 26E1 ldi r18,lo8(22)
940 0710 40E0 ldi r20,lo8(PPM_in)
941 0712 50E0 ldi r21,hi8(PPM_in)
942 0714 60E0 ldi r22,lo8(0)
943 0716 84E3 ldi r24,lo8(52)
944 0718 0E94 0000 call SendOutData
945 071c 8FEF ldi r24,lo8(-1)
946 071e 8093 0000 sts RemotePollDisplayLine,r24
947 0722 00C0 rjmp .L127
948 .L132:
949 0724 44E1 ldi r20,lo8(20)
950 0726 949F mul r25,r20
951 0728 A001 movw r20,r0
952 072a 1124 clr r1
953 072c 4050 subi r20,lo8(-(DisplayBuff))
954 072e 5040 sbci r21,hi8(-(DisplayBuff))
955 0730 24E1 ldi r18,lo8(20)
956 0732 60E0 ldi r22,lo8(0)
957 0734 832F mov r24,r19
958 0736 8F5C subi r24,lo8(-(49))
959 0738 0E94 0000 call SendOutData
960 .L127:
961 073c 8091 0000 lds r24,GetVersionAnforderung
962 0740 8823 tst r24
963 0742 01F0 breq .L135
964 0744 8091 0000 lds r24,UebertragungAbgeschlossen
965 0748 8823 tst r24
966 074a 01F0 breq .L135
967 074c 2AE0 ldi r18,lo8(10)
968 074e 40E0 ldi r20,lo8(VersionInfo)
969 0750 50E0 ldi r21,hi8(VersionInfo)
970 0752 6091 0000 lds r22,MeineSlaveAdresse
971 0756 86E5 ldi r24,lo8(86)
972 0758 0E94 0000 call SendOutData
973 075c 1092 0000 sts GetVersionAnforderung,__zero_reg__
974 .L135:
975 0760 0895 ret
976 /* epilogue: frame size=0 */
977 /* epilogue: noreturn */
978 /* epilogue end (size=0) */
979 /* function DatenUebertragung size 176 (176) */
981 .global BearbeiteRxDaten
983 BearbeiteRxDaten:
984 /* prologue: frame size=2 */
985 0762 1F93 push r17
986 0764 CF93 push r28
987 0766 DF93 push r29
988 0768 CDB7 in r28,__SP_L__
989 076a DEB7 in r29,__SP_H__
990 076c 2297 sbiw r28,2
991 076e 0FB6 in __tmp_reg__,__SREG__
992 0770 F894 cli
993 0772 DEBF out __SP_H__,r29
994 0774 0FBE out __SREG__,__tmp_reg__
995 0776 CDBF out __SP_L__,r28
996 /* prologue end (size=11) */
997 0778 8091 0000 lds r24,NeuerDatensatzEmpfangen
998 077c 8823 tst r24
999 077e 01F4 brne .+2
1000 0780 00C0 rjmp .L163
1001 0782 8FEF ldi r24,lo8(-1)
1002 0784 8093 0000 sts PcZugriff,r24
1003 0788 8091 0000 lds r24,RxdBuffer+2
1004 078c 8836 cpi r24,lo8(104)
1005 078e 01F4 brne .+2
1006 0790 00C0 rjmp .L145
1007 0792 8936 cpi r24,lo8(105)
1008 0794 00F4 brsh .L151
1009 0796 8136 cpi r24,lo8(97)
1010 0798 01F0 breq .L142
1011 079a 8236 cpi r24,lo8(98)
1012 079c 00F4 brsh .L152
1013 079e 8334 cpi r24,lo8(67)
1014 07a0 01F4 brne .+2
1015 07a2 00C0 rjmp .L140
1016 07a4 8835 cpi r24,lo8(88)
1017 07a6 01F0 breq .+2
1018 07a8 00C0 rjmp .L139
1019 07aa 00C0 rjmp .L141
1020 .L152:
1021 07ac 8336 cpi r24,lo8(99)
1022 07ae 01F0 breq .L143
1023 07b0 8736 cpi r24,lo8(103)
1024 07b2 01F0 breq .+2
1025 07b4 00C0 rjmp .L139
1026 07b6 00C0 rjmp .L144
1027 .L151:
1028 07b8 8137 cpi r24,lo8(113)
1029 07ba 00F4 brsh .L153
1030 07bc 8C36 cpi r24,lo8(108)
1031 07be 00F0 brlo .+2
1032 07c0 00C0 rjmp .L147
1033 07c2 8B36 cpi r24,lo8(107)
1034 07c4 01F0 breq .+2
1035 07c6 00C0 rjmp .L139
1036 07c8 00C0 rjmp .L146
1037 .L153:
1038 07ca 8437 cpi r24,lo8(116)
1039 07cc 01F4 brne .+2
1040 07ce 00C0 rjmp .L149
1041 07d0 8637 cpi r24,lo8(118)
1042 07d2 01F4 brne .+2
1043 07d4 00C0 rjmp .L150
1044 07d6 8137 cpi r24,lo8(113)
1045 07d8 01F0 breq .+2
1046 07da 00C0 rjmp .L139
1047 07dc 00C0 rjmp .L148
1048 .L142:
1049 07de 2091 0000 lds r18,AnzahlEmpfangsBytes
1050 07e2 43E0 ldi r20,lo8(3)
1051 07e4 62E0 ldi r22,lo8(2)
1052 07e6 CE01 movw r24,r28
1053 07e8 0196 adiw r24,1
1054 07ea 0E94 0000 call Decode64
1055 07ee 8981 ldd r24,Y+1
1056 07f0 8093 0000 sts DebugTextAnforderung,r24
1057 07f4 00C0 rjmp .L139
1058 .L143:
1059 07f6 2091 0000 lds r18,AnzahlEmpfangsBytes
1060 07fa 43E0 ldi r20,lo8(3)
1061 07fc 6BE0 ldi r22,lo8(11)
1062 07fe 80E0 ldi r24,lo8(DebugIn)
1063 0800 90E0 ldi r25,hi8(DebugIn)
1064 0802 0E94 0000 call Decode64
1065 0806 8091 0000 lds r24,RemoteTasten
1066 080a 9091 0000 lds r25,DebugIn+2
1067 080e 892B or r24,r25
1068 0810 8093 0000 sts RemoteTasten,r24
1069 0814 81E0 ldi r24,lo8(1)
1070 0816 8093 0000 sts DebugDataAnforderung,r24
1071 081a 00C0 rjmp .L139
1072 .L145:
1073 081c 2091 0000 lds r18,AnzahlEmpfangsBytes
1074 0820 43E0 ldi r20,lo8(3)
1075 0822 62E0 ldi r22,lo8(2)
1076 0824 CE01 movw r24,r28
1077 0826 0196 adiw r24,1
1078 0828 0E94 0000 call Decode64
1079 082c 8091 0000 lds r24,RemoteTasten
1080 0830 9981 ldd r25,Y+1
1081 0832 892B or r24,r25
1082 0834 8093 0000 sts RemoteTasten,r24
1083 0838 8A81 ldd r24,Y+2
1084 083a 8F3F cpi r24,lo8(-1)
1085 083c 01F4 brne .L154
1086 083e 81E0 ldi r24,lo8(1)
1087 0840 8093 0000 sts NurKanalAnforderung,r24
1088 0844 00C0 rjmp .L156
1089 .L154:
1090 0846 1092 0000 sts NurKanalAnforderung,__zero_reg__
1091 .L156:
1092 084a 81E0 ldi r24,lo8(1)
1093 084c 8093 0000 sts DebugDisplayAnforderung,r24
1094 0850 00C0 rjmp .L139
1095 .L149:
1096 0852 2091 0000 lds r18,AnzahlEmpfangsBytes
1097 0856 43E0 ldi r20,lo8(3)
1098 0858 64E0 ldi r22,lo8(4)
1099 085a 80E0 ldi r24,lo8(MotorTest)
1100 085c 90E0 ldi r25,hi8(MotorTest)
1101 085e 00C0 rjmp .L164
1102 .L146:
1103 0860 2091 0000 lds r18,AnzahlEmpfangsBytes
1104 0864 43E0 ldi r20,lo8(3)
1105 0866 63E0 ldi r22,lo8(3)
1106 0868 80E0 ldi r24,lo8(DubWiseKeys)
1107 086a 90E0 ldi r25,hi8(DubWiseKeys)
1108 .L164:
1109 086c 0E94 0000 call Decode64
1110 0870 00C0 rjmp .L139
1111 .L150:
1112 0872 81E0 ldi r24,lo8(1)
1113 0874 8093 0000 sts GetVersionAnforderung,r24
1114 0878 00C0 rjmp .L139
1115 .L144:
1116 087a 81E0 ldi r24,lo8(1)
1117 087c 8093 0000 sts DebugGetAnforderung,r24
1118 0880 00C0 rjmp .L139
1119 .L148:
1120 0882 2091 0000 lds r18,AnzahlEmpfangsBytes
1121 0886 43E0 ldi r20,lo8(3)
1122 0888 62E0 ldi r22,lo8(2)
1123 088a CE01 movw r24,r28
1124 088c 0196 adiw r24,1
1125 088e 0E94 0000 call Decode64
1126 0892 8981 ldd r24,Y+1
1127 0894 8F3F cpi r24,lo8(-1)
1128 0896 01F0 breq .L157
1129 0898 8630 cpi r24,lo8(6)
1130 089a 00F0 brlo .L159
1131 089c 85E0 ldi r24,lo8(5)
1132 089e 8983 std Y+1,r24
1133 .L159:
1134 08a0 47E4 ldi r20,lo8(71)
1135 08a2 60E0 ldi r22,lo8(EE_Parameter)
1136 08a4 70E0 ldi r23,hi8(EE_Parameter)
1137 08a6 8981 ldd r24,Y+1
1138 08a8 0E94 0000 call ReadParameterSet
1139 08ac 8981 ldd r24,Y+1
1140 08ae 27E4 ldi r18,lo8(71)
1141 08b0 40E0 ldi r20,lo8(EE_Parameter)
1142 08b2 50E0 ldi r21,hi8(EE_Parameter)
1143 08b4 6091 0000 lds r22,MeineSlaveAdresse
1144 08b8 00C0 rjmp .L166
1145 .L157:
1146 08ba 1091 0000 lds r17,MeineSlaveAdresse
1147 08be 0E94 0000 call GetActiveParamSetNumber
1148 08c2 27E4 ldi r18,lo8(71)
1149 08c4 40E0 ldi r20,lo8(EE_Parameter)
1150 08c6 50E0 ldi r21,hi8(EE_Parameter)
1151 08c8 612F mov r22,r17
1152 .L166:
1153 08ca 855B subi r24,lo8(-(75))
1154 08cc 0E94 0000 call SendOutData
1155 08d0 00C0 rjmp .L139
1156 .L147:
1157 08d2 2091 0000 lds r18,AnzahlEmpfangsBytes
1158 08d6 43E0 ldi r20,lo8(3)
1159 08d8 67E4 ldi r22,lo8(71)
1160 08da 80E0 ldi r24,lo8(EE_Parameter)
1161 08dc 90E0 ldi r25,hi8(EE_Parameter)
1162 08de 0E94 0000 call Decode64
1163 08e2 8091 0000 lds r24,RxdBuffer+2
1164 08e6 47E4 ldi r20,lo8(71)
1165 08e8 60E0 ldi r22,lo8(EE_Parameter)
1166 08ea 70E0 ldi r23,hi8(EE_Parameter)
1167 08ec 8B56 subi r24,lo8(-(-107))
1168 08ee 0E94 0000 call WriteParameterSet
1169 08f2 8091 0000 lds r24,RxdBuffer+2
1170 08f6 8B56 subi r24,lo8(-(-107))
1171 08f8 A0E0 ldi r26,lo8(EEPromArray+2)
1172 08fa B0E0 ldi r27,hi8(EEPromArray+2)
1173 /* #APP */
1174 08fc 082E mov __tmp_reg__,r24
1175 08fe 0E94 0000 call __eeprom_write_byte_1F2021
1176 /* #NOAPP */
1177 0902 6091 0000 lds r22,EE_Parameter+43
1178 0906 7727 clr r23
1179 0908 8827 clr r24
1180 090a 9927 clr r25
1181 090c 24EC ldi r18,lo8(2500)
1182 090e 39E0 ldi r19,hi8(2500)
1183 0910 40E0 ldi r20,hlo8(2500)
1184 0912 50E0 ldi r21,hhi8(2500)
1185 0914 0E94 0000 call __mulsi3
1186 0918 6093 0000 sts Umschlag180Nick,r22
1187 091c 7093 0000 sts (Umschlag180Nick)+1,r23
1188 0920 8093 0000 sts (Umschlag180Nick)+2,r24
1189 0924 9093 0000 sts (Umschlag180Nick)+3,r25
1190 0928 6091 0000 lds r22,EE_Parameter+44
1191 092c 7727 clr r23
1192 092e 8827 clr r24
1193 0930 9927 clr r25
1194 0932 0E94 0000 call __mulsi3
1195 0936 6093 0000 sts Umschlag180Roll,r22
1196 093a 7093 0000 sts (Umschlag180Roll)+1,r23
1197 093e 8093 0000 sts (Umschlag180Roll)+2,r24
1198 0942 9093 0000 sts (Umschlag180Roll)+3,r25
1199 0946 0E94 0000 call GetActiveParamSetNumber
1200 094a 0E94 0000 call Piep
1201 094e 00C0 rjmp .L139
1202 .L141:
1203 0950 6091 0000 lds r22,AnzahlEmpfangsBytes
1204 0954 80E0 ldi r24,lo8(RxdBuffer)
1205 0956 90E0 ldi r25,hi8(RxdBuffer)
1206 0958 0E94 0000 call SendOutRXTunnelData
1207 095c 00C0 rjmp .L139
1208 .L140:
1209 095e 8091 0000 lds r24,Parameter_UserParam2
1210 0962 8B30 cpi r24,lo8(11)
1211 0964 00F0 brlo .L161
1212 0966 2091 0000 lds r18,AnzahlEmpfangsBytes
1213 096a 43E0 ldi r20,lo8(3)
1214 096c 68E0 ldi r22,lo8(8)
1215 096e 80E0 ldi r24,lo8(ControlIn)
1216 0970 90E0 ldi r25,hi8(ControlIn)
1217 0972 0E94 0000 call Decode64
1218 0976 1092 0000 sts ControlOut,__zero_reg__
1219 097a 81E0 ldi r24,lo8(1)
1220 097c 00C0 rjmp .L165
1221 .L161:
1222 097e 1092 0000 sts (ControlIn)+1,__zero_reg__
1223 0982 1092 0000 sts ControlIn,__zero_reg__
1224 0986 1092 0000 sts (ControlIn+2)+1,__zero_reg__
1225 098a 1092 0000 sts ControlIn+2,__zero_reg__
1226 098e 1092 0000 sts (ControlIn+4)+1,__zero_reg__
1227 0992 1092 0000 sts ControlIn+4,__zero_reg__
1228 0996 1092 0000 sts (ControlIn+6)+1,__zero_reg__
1229 099a 1092 0000 sts ControlIn+6,__zero_reg__
1230 099e 81E0 ldi r24,lo8(1)
1231 09a0 8093 0000 sts ControlOut,r24
1232 .L165:
1233 09a4 8093 0000 sts ControlReceived,r24
1234 .L139:
1235 09a8 1092 0000 sts NeuerDatensatzEmpfangen,__zero_reg__
1236 .L163:
1237 /* epilogue: frame size=2 */
1238 09ac 2296 adiw r28,2
1239 09ae 0FB6 in __tmp_reg__,__SREG__
1240 09b0 F894 cli
1241 09b2 DEBF out __SP_H__,r29
1242 09b4 0FBE out __SREG__,__tmp_reg__
1243 09b6 CDBF out __SP_L__,r28
1244 09b8 DF91 pop r29
1245 09ba CF91 pop r28
1246 09bc 1F91 pop r17
1247 09be 0895 ret
1248 /* epilogue end (size=10) */
1249 /* function BearbeiteRxDaten size 304 (283) */
1251 .global DebugGetAnforderung
1252 .global DebugGetAnforderung
1253 .section .bss
1256 DebugGetAnforderung:
1257 0000 00 .skip 1,0
1258 .global DebugDisplayAnforderung
1259 .global DebugDisplayAnforderung
1262 DebugDisplayAnforderung:
1263 0001 00 .skip 1,0
1264 .global DebugDataAnforderung
1265 .global DebugDataAnforderung
1268 DebugDataAnforderung:
1269 0002 00 .skip 1,0
1270 .global GetVersionAnforderung
1271 .global GetVersionAnforderung
1274 GetVersionAnforderung:
1275 0003 00 .skip 1,0
1276 .global SioTmp
1277 .global SioTmp
1280 SioTmp:
1281 0004 00 .skip 1,0
1282 .global NeuerDatensatzEmpfangen
1283 .global NeuerDatensatzEmpfangen
1286 NeuerDatensatzEmpfangen:
1287 0005 00 .skip 1,0
1288 .global NeueKoordinateEmpfangen
1289 .global NeueKoordinateEmpfangen
1292 NeueKoordinateEmpfangen:
1293 0006 00 .skip 1,0
1294 .global UebertragungAbgeschlossen
1295 .data
1298 UebertragungAbgeschlossen:
1299 0000 01 .byte 1
1300 .global CntCrcError
1301 .global CntCrcError
1302 .section .bss
1305 CntCrcError:
1306 0007 00 .skip 1,0
1307 .global AnzahlEmpfangsBytes
1308 .global AnzahlEmpfangsBytes
1311 AnzahlEmpfangsBytes:
1312 0008 00 .skip 1,0
1313 .global PC_DebugTimeout
1314 .global PC_DebugTimeout
1317 PC_DebugTimeout:
1318 0009 00 .skip 1,0
1319 .global RemotePollDisplayLine
1320 .global RemotePollDisplayLine
1323 RemotePollDisplayLine:
1324 000a 00 .skip 1,0
1325 .global NurKanalAnforderung
1326 .global NurKanalAnforderung
1329 NurKanalAnforderung:
1330 000b 00 .skip 1,0
1331 .global DebugTextAnforderung
1332 .data
1335 DebugTextAnforderung:
1336 0001 FF .byte -1
1337 .global PcZugriff
1340 PcZugriff:
1341 0002 64 .byte 100
1342 .global MotorTest
1343 .global MotorTest
1344 .section .bss
1347 MotorTest:
1348 000c 0000 0000 .skip 4,0
1349 .global DubWiseKeys
1350 .global DubWiseKeys
1353 DubWiseKeys:
1354 0010 0000 00 .skip 3,0
1355 .global SioTmp1
1356 .global SioTmp1
1359 SioTmp1:
1360 0013 00 .skip 1,0
1361 .global NeuerDatensatzEmpfangen1
1362 .global NeuerDatensatzEmpfangen1
1365 NeuerDatensatzEmpfangen1:
1366 0014 00 .skip 1,0
1367 .global AnzahlEmpfangsBytes1
1368 .global AnzahlEmpfangsBytes1
1371 AnzahlEmpfangsBytes1:
1372 0015 00 .skip 1,0
1373 .global UebertragungAbgeschlossen1
1374 .data
1377 UebertragungAbgeschlossen1:
1378 0003 01 .byte 1
1379 .global ControlReceived
1380 .global ControlReceived
1381 .section .bss
1384 ControlReceived:
1385 0016 00 .skip 1,0
1386 .global ANALOG_TEXT
1387 .data
1390 ANALOG_TEXT:
1391 0004 496E 7465 .ascii "IntegralNick "
1391 6772 616C
1391 4E69 636B
1391 2020 2020
1392 0014 496E 7465 .ascii "IntegralRoll "
1392 6772 616C
1392 526F 6C6C
1392 2020 2020
1393 0024 4163 634E .ascii "AccNick "
1393 6963 6B20
1393 2020 2020
1393 2020 2020
1394 0034 4163 6352 .ascii "AccRoll "
1394 6F6C 6C20
1394 2020 2020
1394 2020 2020
1395 0044 4779 726F .ascii "GyroGier "
1395 4769 6572
1395 2020 2020
1395 2020 2020
1396 0054 486F 6568 .ascii "HoehenWert "
1396 656E 5765
1396 7274 2020
1396 2020 2020
1397 0064 4163 635A .ascii "AccZ "
1397 2020 2020
1397 2020 2020
1397 2020 2020
1398 0074 4761 7320 .ascii "Gas "
1398 2020 2020
1398 2020 2020
1398 2020 2020
1399 0084 4B6F 6D70 .ascii "KompassValue "
1399 6173 7356
1399 616C 7565
1399 2020 2020
1400 0094 5370 616E .ascii "Spannung "
1400 6E75 6E67
1400 2020 2020
1400 2020 2020
1401 00a4 456D 7066 .ascii "Empfang "
1401 616E 6720
1401 2020 2020
1401 2020 2020
1402 00b4 3131 202D .ascii "11 --- "
1402 2D2D 2020
1402 2020 2020
1402 2020 2020
1403 00c4 4D6F 746F .ascii "Motor_Vorne "
1403 725F 566F
1403 726E 6520
1403 2020 2020
1404 00d4 4D6F 746F .ascii "Motor_Hinten "
1404 725F 4869
1404 6E74 656E
1404 2020 2020
1405 00e4 4D6F 746F .ascii "Motor_Links "
1405 725F 4C69
1405 6E6B 7320
1405 2020 2020
1406 00f4 4D6F 746F .ascii "Motor_Rechts "
1406 725F 5265
1406 6368 7473
1406 2020 2020
1407 0104 3136 5F41 .ascii "16_Acc_Z "
1407 6363 5F5A
1407 2020 2020
1407 2020 2020
1408 0114 3137 4D69 .ascii "17MittelAccNick "
1408 7474 656C
1408 4163 634E
1408 6963 6B20
1409 0124 3138 5F4D .ascii "18_MittelAccRoll"
1409 6974 7465
1409 6C41 6363
1409 526F 6C6C
1410 0134 416E 616C .ascii "Analog19 "
1410 6F67 3139
1410 2020 2020
1410 2020 2020
1411 0144 496E 7465 .ascii "IntegralErrRoll "
1411 6772 616C
1411 4572 7252
1411 6F6C 6C20
1412 0154 416E 616C .ascii "Analog21 "
1412 6F67 3231
1412 2020 2020
1412 2020 2020
1413 0164 3232 5F4D .ascii "22_MittelGIngR "
1413 6974 7465
1413 6C47 496E
1413 6752 2020
1414 0174 416E 616C .ascii "Analog23 "
1414 6F67 3233
1414 2020 2020
1414 2020 2020
1415 0184 3234 526F .ascii "24RollOffset "
1415 6C6C 4F66
1415 6673 6574
1415 2020 2020
1416 0194 3235 496E .ascii "25IntRoll*Fakt "
1416 7452 6F6C
1416 6C2A 4661
1416 6B74 2020
1417 01a4 416E 616C .ascii "Analog26 "
1417 6F67 3236
1417 2020 2020
1417 2020 2020
1418 01b4 4469 7265 .ascii "DirektAusglRoll "
1418 6B74 4175
1418 7367 6C52
1418 6F6C 6C20
1419 01c4 3238 4D65 .ascii "28MesswertRoll "
1419 7373 7765
1419 7274 526F
1419 6C6C 2020
1420 01d4 3239 4175 .ascii "29AusgleichRoll "
1420 7367 6C65
1420 6963 6852
1420 6F6C 6C20
1421 01e4 3330 5F49 .ascii "30_I-LageRoll "
1421 2D4C 6167
1421 6552 6F6C
1421 6C20 2020
1422 01f4 3331 5F53 .ascii "31_StickRoll "
1422 7469 636B
1422 526F 6C6C
1422 2020 2020
1423 .lcomm UartState.2117,1
1424 .lcomm buf_ptr.2116,1
1425 .lcomm crc2.2115,1
1426 .lcomm crc1.2114,1
1427 .lcomm crc.2113,2
1428 .lcomm ptr.2100,2
1429 .lcomm UartState1.2074,1
1430 .lcomm buf_ptr1.2073,1
1431 .lcomm ptr1.2060,2
1432 .comm SendeBuffer,150,1
1433 .comm RxdBuffer,150,1
1434 .comm MeineSlaveAdresse,1,1
1435 .comm Debug_Timer,2,1
1436 .comm DebugOut,66,1
1437 .comm DebugIn,11,1
1438 .comm VersionInfo,10,1
1439 .comm ControlIn,8,1
1440 .comm ControlOut,1,1
1441 .comm NMEABuffer,150,1
1442 .comm SendeBuffer1,150,1
1443 .comm RxdBuffer1,150,1
1444 /* File "uart.c": code 1257 = 0x04e9 (1120), prologues 65, epilogues 72 */
DEFINED SYMBOLS
*ABS*:00000000 uart.c
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:3 *ABS*:0000003f __SREG__
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:4 *ABS*:0000003e __SP_H__
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:5 *ABS*:0000003d __SP_L__
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:7 *ABS*:00000001 __zero_reg__
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:13 .text:00000000 __vector_30
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1377 .data:00000003 UebertragungAbgeschlossen1
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1430 .bss:00000021 ptr1.2060
*COM*:00000096 SendeBuffer1
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:69 .text:0000006c __vector_28
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1359 .bss:00000013 SioTmp1
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1429 .bss:00000020 buf_ptr1.2073
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1428 .bss:0000001f UartState1.2074
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1365 .bss:00000014 NeuerDatensatzEmpfangen1
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1371 .bss:00000015 AnzahlEmpfangsBytes1
*COM*:00000096 RxdBuffer1
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:168 .text:00000136 __vector_22
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1298 .data:00000000 UebertragungAbgeschlossen
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1427 .bss:0000001d ptr.2100
*COM*:00000096 SendeBuffer
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:224 .text:000001a2 __vector_20
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1280 .bss:00000004 SioTmp
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1423 .bss:00000018 buf_ptr.2116
.bss:00000017 UartState.2117
*COM*:00000096 RxdBuffer
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1426 .bss:0000001b crc.2113
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1425 .bss:0000001a crc1.2114
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1424 .bss:00000019 crc2.2115
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1305 .bss:00000007 CntCrcError
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1286 .bss:00000005 NeuerDatensatzEmpfangen
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1311 .bss:00000008 AnzahlEmpfangsBytes
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:416 .text:00000344 AddCRC
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:470 .text:000003a0 SendOutRXTunnelData
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:501 .text:000003ce SendOutTXTunnelData
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:533 .text:00000400 SendOutData
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:647 .text:000004d0 Decode64
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:747 .text:00000580 uart_putchar
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:771 .text:000005a2 WriteProgramData
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:781 .text:000005a4 UART_Init
*COM*:00000002 Debug_Timer
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:831 .text:00000602 DatenUebertragung
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1384 .bss:00000016 ControlReceived
*COM*:00000001 ControlOut
*COM*:00000001 MeineSlaveAdresse
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1256 .bss:00000000 DebugGetAnforderung
*COM*:0000000b DebugIn
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1268 .bss:00000002 DebugDataAnforderung
*COM*:00000042 DebugOut
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1335 .data:00000001 DebugTextAnforderung
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1390 .data:00000004 ANALOG_TEXT
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1262 .bss:00000001 DebugDisplayAnforderung
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1323 .bss:0000000a RemotePollDisplayLine
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1329 .bss:0000000b NurKanalAnforderung
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1274 .bss:00000003 GetVersionAnforderung
*COM*:0000000a VersionInfo
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:983 .text:00000762 BearbeiteRxDaten
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1340 .data:00000002 PcZugriff
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1347 .bss:0000000c MotorTest
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1353 .bss:00000010 DubWiseKeys
*COM*:00000008 ControlIn
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1292 .bss:00000006 NeueKoordinateEmpfangen
C:\Users\gunterl\AppData\Local\Temp/cc6ZqIMb.s:1317 .bss:00000009 PC_DebugTimeout
*COM*:00000096 NMEABuffer
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
SetDelay
CheckDelay
Menu
PPM_in
DisplayBuff
RemoteTasten
EE_Parameter
ReadParameterSet
GetActiveParamSetNumber
WriteParameterSet
EEPromArray
__eeprom_write_byte_1F2021
__mulsi3
Umschlag180Nick
Umschlag180Roll
Piep
Parameter_UserParam2