Blame | Last modification | View Log | RSS feed
1 .file "uart.c"
2 .arch atmega644
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_22
13 __vector_22:
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,UebertragungAbgeschlossen
26 0016 8823 tst r24
27 0018 01F4 brne .L2
28 001a 8091 0000 lds r24,ptr.1956
29 001e 9091 0000 lds r25,(ptr.1956)+1
30 0022 0196 adiw r24,1
31 0024 9093 0000 sts (ptr.1956)+1,r25
32 0028 8093 0000 sts ptr.1956,r24
33 002c FC01 movw r30,r24
34 002e E050 subi r30,lo8(-(SendeBuffer))
35 0030 F040 sbci r31,hi8(-(SendeBuffer))
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 (ptr.1956)+1,__zero_reg__
44 0042 1092 0000 sts ptr.1956,__zero_reg__
45 0046 81E0 ldi r24,lo8(1)
46 0048 8093 0000 sts UebertragungAbgeschlossen,r24
47 .L6:
48 004c E093 C600 sts 198,r30
49 0050 00C0 rjmp .L8
50 .L2:
51 0052 1092 0000 sts (ptr.1956)+1,__zero_reg__
52 0056 1092 0000 sts ptr.1956,__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_22 size 54 (36) */
67 .global __vector_20
69 __vector_20:
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 3F93 push r19
78 007a 4F93 push r20
79 007c 8F93 push r24
80 007e 9F93 push r25
81 0080 AF93 push r26
82 0082 BF93 push r27
83 0084 CF93 push r28
84 0086 DF93 push r29
85 0088 EF93 push r30
86 008a FF93 push r31
87 /* prologue end (size=16) */
88 008c 8091 C600 lds r24,198
89 0090 8093 0000 sts SioTmp,r24
90 0094 4091 0000 lds r20,buf_ptr.1972
91 0098 4639 cpi r20,lo8(-106)
92 009a 00F0 brlo .L10
93 009c 1092 0000 sts UartState.1973,__zero_reg__
94 .L10:
95 00a0 8091 0000 lds r24,SioTmp
96 00a4 8D30 cpi r24,lo8(13)
97 00a6 01F0 breq .+2
98 00a8 00C0 rjmp .L12
99 00aa 8091 0000 lds r24,UartState.1973
100 00ae 8230 cpi r24,lo8(2)
101 00b0 01F0 breq .+2
102 00b2 00C0 rjmp .L12
103 00b4 1092 0000 sts UartState.1973,__zero_reg__
104 00b8 A42F mov r26,r20
105 00ba BB27 clr r27
106 00bc FD01 movw r30,r26
107 00be E050 subi r30,lo8(-(RxdBuffer-2))
108 00c0 F040 sbci r31,hi8(-(RxdBuffer-2))
109 00c2 3081 ld r19,Z
110 00c4 ED01 movw r28,r26
111 00c6 C050 subi r28,lo8(-(RxdBuffer-1))
112 00c8 D040 sbci r29,hi8(-(RxdBuffer-1))
113 00ca 2881 ld r18,Y
114 00cc 8091 0000 lds r24,crc.1969
115 00d0 9091 0000 lds r25,(crc.1969)+1
116 00d4 831B sub r24,r19
117 00d6 9109 sbc r25,__zero_reg__
118 00d8 821B sub r24,r18
119 00da 9109 sbc r25,__zero_reg__
120 00dc 9F70 andi r25,hi8(4095)
121 00de 9093 0000 sts (crc.1969)+1,r25
122 00e2 8093 0000 sts crc.1969,r24
123 00e6 9C01 movw r18,r24
124 00e8 96E0 ldi r25,6
125 00ea 3695 1: lsr r19
126 00ec 2795 ror r18
127 00ee 9A95 dec r25
128 00f0 01F4 brne 1b
129 00f2 235C subi r18,lo8(-(61))
130 00f4 2093 0000 sts crc1.1970,r18
131 00f8 982F mov r25,r24
132 00fa 9F73 andi r25,lo8(63)
133 00fc 935C subi r25,lo8(-(61))
134 00fe 9093 0000 sts crc2.1971,r25
135 0102 8081 ld r24,Z
136 0104 2817 cp r18,r24
137 0106 01F4 brne .L15
138 0108 8881 ld r24,Y
139 010a 9817 cp r25,r24
140 010c 01F4 brne .L15
141 010e 91E0 ldi r25,lo8(1)
142 0110 00C0 rjmp .L18
143 .L15:
144 0112 8091 0000 lds r24,CntCrcError
145 0116 8F5F subi r24,lo8(-(1))
146 0118 8093 0000 sts CntCrcError,r24
147 011c 90E0 ldi r25,lo8(0)
148 .L18:
149 011e 8091 0000 lds r24,NeuerDatensatzEmpfangen
150 0122 8823 tst r24
151 0124 01F0 breq .+2
152 0126 00C0 rjmp .L33
153 0128 9923 tst r25
154 012a 01F4 brne .+2
155 012c 00C0 rjmp .L33
156 012e 81E0 ldi r24,lo8(1)
157 0130 8093 0000 sts NeuerDatensatzEmpfangen,r24
158 0134 4093 0000 sts AnzahlEmpfangsBytes,r20
159 0138 A050 subi r26,lo8(-(RxdBuffer))
160 013a B040 sbci r27,hi8(-(RxdBuffer))
161 013c 8DE0 ldi r24,lo8(13)
162 013e 8C93 st X,r24
163 0140 8091 0000 lds r24,RxdBuffer+2
164 0144 8235 cpi r24,lo8(82)
165 0146 01F0 breq .+2
166 0148 00C0 rjmp .L33
167 014a 88E1 ldi r24,lo8(24)
168 014c 90E0 ldi r25,hi8(24)
169 014e 2CE0 ldi r18,lo8(12)
170 /* #APP */
171 0150 0FB6 in __tmp_reg__,__SREG__
172 0152 F894 cli
173 0154 A895 wdr
174 0156 8093 6000 sts 96,r24
175 015a 0FBE out __SREG__,__tmp_reg__
176 015c 2093 6000 sts 96,r18
177 /* #NOAPP */
178 0160 00C0 rjmp .L33
179 .L12:
180 0162 8091 0000 lds r24,UartState.1973
181 0166 8130 cpi r24,lo8(1)
182 0168 01F0 breq .L25
183 016a 8130 cpi r24,lo8(1)
184 016c 00F0 brlo .L24
185 016e 8230 cpi r24,lo8(2)
186 0170 01F4 brne .L34
187 0172 00C0 rjmp .L26
188 .L24:
189 0174 8091 0000 lds r24,SioTmp
190 0178 8332 cpi r24,lo8(35)
191 017a 01F4 brne .L27
192 017c 8091 0000 lds r24,NeuerDatensatzEmpfangen
193 0180 8823 tst r24
194 0182 01F4 brne .L27
195 0184 81E0 ldi r24,lo8(1)
196 0186 8093 0000 sts UartState.1973,r24
197 .L27:
198 018a 8091 0000 lds r24,SioTmp
199 018e 8093 0000 sts RxdBuffer,r24
200 0192 81E0 ldi r24,lo8(1)
201 0194 8093 0000 sts buf_ptr.1972,r24
202 0198 8091 0000 lds r24,SioTmp
203 019c 9927 clr r25
204 019e 00C0 rjmp .L35
205 .L25:
206 01a0 82E0 ldi r24,lo8(2)
207 01a2 8093 0000 sts UartState.1973,r24
208 01a6 E42F mov r30,r20
209 01a8 FF27 clr r31
210 01aa 8091 0000 lds r24,SioTmp
211 01ae E050 subi r30,lo8(-(RxdBuffer))
212 01b0 F040 sbci r31,hi8(-(RxdBuffer))
213 01b2 8083 st Z,r24
214 .L37:
215 01b4 4F5F subi r20,lo8(-(1))
216 01b6 4093 0000 sts buf_ptr.1972,r20
217 .L36:
218 01ba 2091 0000 lds r18,SioTmp
219 01be 8091 0000 lds r24,crc.1969
220 01c2 9091 0000 lds r25,(crc.1969)+1
221 01c6 820F add r24,r18
222 01c8 911D adc r25,__zero_reg__
223 .L35:
224 01ca 9093 0000 sts (crc.1969)+1,r25
225 01ce 8093 0000 sts crc.1969,r24
226 01d2 00C0 rjmp .L33
227 .L26:
228 01d4 E42F mov r30,r20
229 01d6 FF27 clr r31
230 01d8 8091 0000 lds r24,SioTmp
231 01dc E050 subi r30,lo8(-(RxdBuffer))
232 01de F040 sbci r31,hi8(-(RxdBuffer))
233 01e0 8083 st Z,r24
234 01e2 4639 cpi r20,lo8(-106)
235 01e4 00F0 brlo .L37
236 01e6 1092 0000 sts UartState.1973,__zero_reg__
237 01ea 00C0 rjmp .L36
238 .L34:
239 01ec 1092 0000 sts UartState.1973,__zero_reg__
240 .L33:
241 /* epilogue: frame size=0 */
242 01f0 FF91 pop r31
243 01f2 EF91 pop r30
244 01f4 DF91 pop r29
245 01f6 CF91 pop r28
246 01f8 BF91 pop r27
247 01fa AF91 pop r26
248 01fc 9F91 pop r25
249 01fe 8F91 pop r24
250 0200 4F91 pop r20
251 0202 3F91 pop r19
252 0204 2F91 pop r18
253 0206 0F90 pop __tmp_reg__
254 0208 0FBE out __SREG__,__tmp_reg__
255 020a 0F90 pop __tmp_reg__
256 020c 1F90 pop __zero_reg__
257 020e 1895 reti
258 /* epilogue end (size=16) */
259 /* function __vector_20 size 215 (183) */
261 .global AddCRC
263 AddCRC:
264 /* prologue: frame size=0 */
265 /* prologue end (size=0) */
266 0210 DC01 movw r26,r24
267 0212 20E0 ldi r18,lo8(0)
268 0214 30E0 ldi r19,hi8(0)
269 0216 40E0 ldi r20,lo8(0)
270 0218 50E0 ldi r21,hi8(0)
271 021a E0E0 ldi r30,lo8(SendeBuffer)
272 021c F0E0 ldi r31,hi8(SendeBuffer)
273 021e 00C0 rjmp .L39
274 .L40:
275 0220 8191 ld r24,Z+
276 0222 280F add r18,r24
277 0224 311D adc r19,__zero_reg__
278 0226 4F5F subi r20,lo8(-(1))
279 0228 5F4F sbci r21,hi8(-(1))
280 .L39:
281 022a 4A17 cp r20,r26
282 022c 5B07 cpc r21,r27
283 022e 01F4 brne .L40
284 0230 3F70 andi r19,hi8(4095)
285 0232 C901 movw r24,r18
286 0234 36E0 ldi r19,6
287 0236 9695 1: lsr r25
288 0238 8795 ror r24
289 023a 3A95 dec r19
290 023c 01F4 brne 1b
291 023e 835C subi r24,lo8(-(61))
292 0240 FD01 movw r30,r26
293 0242 E050 subi r30,lo8(-(SendeBuffer))
294 0244 F040 sbci r31,hi8(-(SendeBuffer))
295 0246 8083 st Z,r24
296 0248 1196 adiw r26,1
297 024a 2F73 andi r18,lo8(63)
298 024c 235C subi r18,lo8(-(61))
299 024e FD01 movw r30,r26
300 0250 E050 subi r30,lo8(-(SendeBuffer))
301 0252 F040 sbci r31,hi8(-(SendeBuffer))
302 0254 2083 st Z,r18
303 0256 A050 subi r26,lo8(-(SendeBuffer+1))
304 0258 B040 sbci r27,hi8(-(SendeBuffer+1))
305 025a 8DE0 ldi r24,lo8(13)
306 025c 8C93 st X,r24
307 025e 1092 0000 sts UebertragungAbgeschlossen,__zero_reg__
308 0262 8091 0000 lds r24,SendeBuffer
309 0266 8093 C600 sts 198,r24
310 /* epilogue: frame size=0 */
311 026a 0895 ret
312 /* epilogue end (size=1) */
313 /* function AddCRC size 47 (46) */
315 .global SendOutData
317 SendOutData:
318 /* prologue: frame size=0 */
319 026c EF92 push r14
320 026e FF92 push r15
321 0270 0F93 push r16
322 0272 1F93 push r17
323 0274 CF93 push r28
324 0276 DF93 push r29
325 /* prologue end (size=6) */
326 0278 7A01 movw r14,r20
327 027a 722F mov r23,r18
328 027c 93E2 ldi r25,lo8(35)
329 027e 9093 0000 sts SendeBuffer,r25
330 0282 6093 0000 sts SendeBuffer+1,r22
331 0286 8093 0000 sts SendeBuffer+2,r24
332 028a 03E0 ldi r16,lo8(3)
333 028c 10E0 ldi r17,hi8(3)
334 028e 60E0 ldi r22,lo8(0)
335 0290 A0E0 ldi r26,lo8(SendeBuffer+3)
336 0292 B0E0 ldi r27,hi8(SendeBuffer+3)
337 0294 00C0 rjmp .L44
338 .L45:
339 0296 F701 movw r30,r14
340 0298 E60F add r30,r22
341 029a F11D adc r31,__zero_reg__
342 029c 9081 ld r25,Z
343 029e 6F5F subi r22,lo8(-(1))
344 02a0 7150 subi r23,lo8(-(-1))
345 02a2 01F4 brne .L46
346 02a4 E0E0 ldi r30,lo8(0)
347 02a6 40E0 ldi r20,lo8(0)
348 02a8 00C0 rjmp .L48
349 .L46:
350 02aa F701 movw r30,r14
351 02ac E60F add r30,r22
352 02ae F11D adc r31,__zero_reg__
353 02b0 4081 ld r20,Z
354 02b2 6F5F subi r22,lo8(-(1))
355 02b4 7150 subi r23,lo8(-(-1))
356 02b6 01F4 brne .L49
357 02b8 E0E0 ldi r30,lo8(0)
358 02ba 00C0 rjmp .L48
359 .L49:
360 02bc F701 movw r30,r14
361 02be E60F add r30,r22
362 02c0 F11D adc r31,__zero_reg__
363 02c2 E081 ld r30,Z
364 02c4 6F5F subi r22,lo8(-(1))
365 02c6 7150 subi r23,lo8(-(-1))
366 .L48:
367 02c8 892F mov r24,r25
368 02ca 8695 lsr r24
369 02cc 8695 lsr r24
370 02ce 835C subi r24,lo8(-(61))
371 02d0 8C93 st X,r24
372 02d2 5527 clr r21
373 02d4 892F mov r24,r25
374 02d6 9927 clr r25
375 02d8 8370 andi r24,lo8(3)
376 02da 9070 andi r25,hi8(3)
377 02dc 24E0 ldi r18,4
378 02de 880F 1: lsl r24
379 02e0 991F rol r25
380 02e2 2A95 dec r18
381 02e4 01F4 brne 1b
382 02e6 9A01 movw r18,r20
383 02e8 94E0 ldi r25,4
384 02ea 3695 1: lsr r19
385 02ec 2795 ror r18
386 02ee 9A95 dec r25
387 02f0 01F4 brne 1b
388 02f2 822B or r24,r18
389 02f4 835C subi r24,lo8(-(61))
390 02f6 ED01 movw r28,r26
391 02f8 8983 std Y+1,r24
392 02fa 4F70 andi r20,lo8(15)
393 02fc 5070 andi r21,hi8(15)
394 02fe 440F lsl r20
395 0300 551F rol r21
396 0302 440F lsl r20
397 0304 551F rol r21
398 0306 8E2F mov r24,r30
399 0308 8295 swap r24
400 030a 8695 lsr r24
401 030c 8695 lsr r24
402 030e 8370 andi r24,0x3
403 0310 842B or r24,r20
404 0312 835C subi r24,lo8(-(61))
405 0314 8A83 std Y+2,r24
406 0316 EF73 andi r30,lo8(63)
407 0318 E35C subi r30,lo8(-(61))
408 031a EB83 std Y+3,r30
409 031c 0C5F subi r16,lo8(-(4))
410 031e 1F4F sbci r17,hi8(-(4))
411 0320 1496 adiw r26,4
412 .L44:
413 0322 7723 tst r23
414 0324 01F0 breq .+2
415 0326 00C0 rjmp .L45
416 0328 C801 movw r24,r16
417 032a 0E94 0000 call AddCRC
418 /* epilogue: frame size=0 */
419 032e DF91 pop r29
420 0330 CF91 pop r28
421 0332 1F91 pop r17
422 0334 0F91 pop r16
423 0336 FF90 pop r15
424 0338 EF90 pop r14
425 033a 0895 ret
426 /* epilogue end (size=7) */
427 /* function SendOutData size 106 (93) */
429 .global Decode64
431 Decode64:
432 /* prologue: frame size=0 */
433 033c 1F93 push r17
434 033e CF93 push r28
435 0340 DF93 push r29
436 /* prologue end (size=3) */
437 0342 EC01 movw r28,r24
438 0344 70E0 ldi r23,lo8(0)
439 0346 A22F mov r26,r18
440 0348 BB27 clr r27
441 034a 1297 sbiw r26,2
442 034c 00C0 rjmp .L54
443 .L55:
444 034e E42F mov r30,r20
445 0350 FF27 clr r31
446 0352 E050 subi r30,lo8(-(RxdBuffer))
447 0354 F040 sbci r31,hi8(-(RxdBuffer))
448 0356 3081 ld r19,Z
449 0358 4F5F subi r20,lo8(-(1))
450 035a E42F mov r30,r20
451 035c FF27 clr r31
452 035e E050 subi r30,lo8(-(RxdBuffer))
453 0360 F040 sbci r31,hi8(-(RxdBuffer))
454 0362 5081 ld r21,Z
455 0364 4F5F subi r20,lo8(-(1))
456 0366 E42F mov r30,r20
457 0368 FF27 clr r31
458 036a E050 subi r30,lo8(-(RxdBuffer))
459 036c F040 sbci r31,hi8(-(RxdBuffer))
460 036e 1081 ld r17,Z
461 0370 4F5F subi r20,lo8(-(1))
462 0372 E42F mov r30,r20
463 0374 FF27 clr r31
464 0376 E050 subi r30,lo8(-(RxdBuffer))
465 0378 F040 sbci r31,hi8(-(RxdBuffer))
466 037a 2081 ld r18,Z
467 037c 4F5F subi r20,lo8(-(1))
468 037e 842F mov r24,r20
469 0380 9927 clr r25
470 0382 A817 cp r26,r24
471 0384 B907 cpc r27,r25
472 0386 04F0 brlt .L60
473 0388 5D53 subi r21,lo8(-(-61))
474 038a FE01 movw r30,r28
475 038c E70F add r30,r23
476 038e F11D adc r31,__zero_reg__
477 0390 3D53 subi r19,lo8(-(-61))
478 0392 330F lsl r19
479 0394 330F lsl r19
480 0396 852F mov r24,r21
481 0398 8295 swap r24
482 039a 8F70 andi r24,0x0f
483 039c 382B or r19,r24
484 039e 3083 st Z,r19
485 03a0 6130 cpi r22,lo8(1)
486 03a2 01F0 breq .L60
487 03a4 912F mov r25,r17
488 03a6 9D53 subi r25,lo8(-(-61))
489 03a8 7F5F subi r23,lo8(-(1))
490 03aa FE01 movw r30,r28
491 03ac E70F add r30,r23
492 03ae F11D adc r31,__zero_reg__
493 03b0 7150 subi r23,lo8(-(-1))
494 03b2 5295 swap r21
495 03b4 507F andi r21,0xf0
496 03b6 892F mov r24,r25
497 03b8 8695 lsr r24
498 03ba 8695 lsr r24
499 03bc 582B or r21,r24
500 03be 5083 st Z,r21
501 03c0 6350 subi r22,lo8(-(-3))
502 03c2 6F3F cpi r22,lo8(-1)
503 03c4 01F0 breq .L60
504 03c6 7E5F subi r23,lo8(-(2))
505 03c8 FE01 movw r30,r28
506 03ca E70F add r30,r23
507 03cc F11D adc r31,__zero_reg__
508 03ce 9295 swap r25
509 03d0 990F lsl r25
510 03d2 990F lsl r25
511 03d4 907C andi r25,0xc0
512 03d6 2D53 subi r18,lo8(-(-61))
513 03d8 922B or r25,r18
514 03da 9083 st Z,r25
515 03dc 7F5F subi r23,lo8(-(1))
516 .L54:
517 03de 6623 tst r22
518 03e0 01F0 breq .+2
519 03e2 00C0 rjmp .L55
520 .L60:
521 /* epilogue: frame size=0 */
522 03e4 DF91 pop r29
523 03e6 CF91 pop r28
524 03e8 1F91 pop r17
525 03ea 0895 ret
526 /* epilogue end (size=4) */
527 /* function Decode64 size 88 (81) */
529 .global uart_putchar
531 uart_putchar:
532 /* prologue: frame size=0 */
533 03ec 1F93 push r17
534 /* prologue end (size=1) */
535 03ee 182F mov r17,r24
536 03f0 8A30 cpi r24,lo8(10)
537 03f2 01F4 brne .L66
538 03f4 8DE0 ldi r24,lo8(13)
539 03f6 0E94 0000 call uart_putchar
540 .L66:
541 03fa 8091 C000 lds r24,192
542 03fe 85FF sbrs r24,5
543 0400 00C0 rjmp .L66
544 0402 1093 C600 sts 198,r17
545 0406 80E0 ldi r24,lo8(0)
546 0408 90E0 ldi r25,hi8(0)
547 /* epilogue: frame size=0 */
548 040a 1F91 pop r17
549 040c 0895 ret
550 /* epilogue end (size=2) */
551 /* function uart_putchar size 17 (14) */
553 .global WriteProgramData
555 WriteProgramData:
556 /* prologue: frame size=0 */
557 /* prologue end (size=0) */
558 /* epilogue: frame size=0 */
559 040e 0895 ret
560 /* epilogue end (size=1) */
561 /* function WriteProgramData size 1 (0) */
563 .global UART_Init
565 UART_Init:
566 /* prologue: frame size=0 */
567 /* prologue end (size=0) */
568 0410 E1EC ldi r30,lo8(193)
569 0412 F0E0 ldi r31,hi8(193)
570 0414 88E1 ldi r24,lo8(24)
571 0416 8083 st Z,r24
572 0418 A0EC ldi r26,lo8(192)
573 041a B0E0 ldi r27,hi8(192)
574 041c 8C91 ld r24,X
575 041e 8260 ori r24,lo8(2)
576 0420 8C93 st X,r24
577 0422 8081 ld r24,Z
578 0424 8068 ori r24,lo8(-128)
579 0426 8083 st Z,r24
580 0428 8081 ld r24,Z
581 042a 8064 ori r24,lo8(64)
582 042c 8083 st Z,r24
583 042e 8AE2 ldi r24,lo8(42)
584 0430 8093 C400 sts 196,r24
585 0434 88EC ldi r24,lo8(200)
586 0436 90E0 ldi r25,hi8(200)
587 0438 0E94 0000 call SetDelay
588 043c 9093 0000 sts (Debug_Timer)+1,r25
589 0440 8093 0000 sts Debug_Timer,r24
590 /* epilogue: frame size=0 */
591 0444 0895 ret
592 /* epilogue end (size=1) */
593 /* function UART_Init size 27 (26) */
595 .global DatenUebertragung
597 DatenUebertragung:
598 /* prologue: frame size=0 */
599 /* prologue end (size=0) */
600 0446 8091 0000 lds r24,UebertragungAbgeschlossen
601 044a 8823 tst r24
602 044c 01F4 brne .+2
603 044e 00C0 rjmp .L90
604 0450 8091 0000 lds r24,DebugGetAnforderung
605 0454 8823 tst r24
606 0456 01F0 breq .L76
607 0458 8091 0000 lds r24,UebertragungAbgeschlossen
608 045c 8823 tst r24
609 045e 01F0 breq .L76
610 0460 2BE0 ldi r18,lo8(11)
611 0462 40E0 ldi r20,lo8(DebugIn)
612 0464 50E0 ldi r21,hi8(DebugIn)
613 0466 6091 0000 lds r22,MeineSlaveAdresse
614 046a 87E4 ldi r24,lo8(71)
615 046c 0E94 0000 call SendOutData
616 0470 1092 0000 sts DebugGetAnforderung,__zero_reg__
617 .L76:
618 0474 8091 0000 lds r24,Debug_Timer
619 0478 9091 0000 lds r25,(Debug_Timer)+1
620 047c 0E94 0000 call CheckDelay
621 0480 8823 tst r24
622 0482 01F4 brne .L79
623 0484 8091 0000 lds r24,DebugDataAnforderung
624 0488 8823 tst r24
625 048a 01F0 breq .L81
626 .L79:
627 048c 8091 0000 lds r24,UebertragungAbgeschlossen
628 0490 8823 tst r24
629 0492 01F0 breq .L81
630 0494 22E3 ldi r18,lo8(50)
631 0496 40E0 ldi r20,lo8(DebugOut)
632 0498 50E0 ldi r21,hi8(DebugOut)
633 049a 6091 0000 lds r22,MeineSlaveAdresse
634 049e 84E4 ldi r24,lo8(68)
635 04a0 0E94 0000 call SendOutData
636 04a4 1092 0000 sts DebugDataAnforderung,__zero_reg__
637 04a8 8AEF ldi r24,lo8(250)
638 04aa 90E0 ldi r25,hi8(250)
639 04ac 0E94 0000 call SetDelay
640 04b0 9093 0000 sts (Debug_Timer)+1,r25
641 04b4 8093 0000 sts Debug_Timer,r24
642 .L81:
643 04b8 8091 0000 lds r24,DebugDisplayAnforderung
644 04bc 8823 tst r24
645 04be 01F0 breq .L83
646 04c0 8091 0000 lds r24,UebertragungAbgeschlossen
647 04c4 8823 tst r24
648 04c6 01F0 breq .L83
649 04c8 0E94 0000 call Menu
650 04cc 1092 0000 sts DebugDisplayAnforderung,__zero_reg__
651 04d0 8091 0000 lds r24,dis_zeile.2217
652 04d4 8F5F subi r24,lo8(-(1))
653 04d6 8093 0000 sts dis_zeile.2217,r24
654 04da 8430 cpi r24,lo8(4)
655 04dc 01F4 brne .L86
656 04de 1092 0000 sts dis_zeile.2217,__zero_reg__
657 .L86:
658 04e2 8091 0000 lds r24,dis_zeile.2217
659 04e6 44E1 ldi r20,lo8(20)
660 04e8 849F mul r24,r20
661 04ea A001 movw r20,r0
662 04ec 1124 clr r1
663 04ee 4050 subi r20,lo8(-(DisplayBuff))
664 04f0 5040 sbci r21,hi8(-(DisplayBuff))
665 04f2 24E1 ldi r18,lo8(20)
666 04f4 60E0 ldi r22,lo8(0)
667 04f6 805D subi r24,lo8(-(48))
668 04f8 0E94 0000 call SendOutData
669 .L83:
670 04fc 8091 0000 lds r24,GetVersionAnforderung
671 0500 8823 tst r24
672 0502 01F0 breq .L90
673 0504 8091 0000 lds r24,UebertragungAbgeschlossen
674 0508 8823 tst r24
675 050a 01F0 breq .L90
676 050c 2AE0 ldi r18,lo8(10)
677 050e 40E0 ldi r20,lo8(VersionInfo)
678 0510 50E0 ldi r21,hi8(VersionInfo)
679 0512 6091 0000 lds r22,MeineSlaveAdresse
680 0516 86E5 ldi r24,lo8(86)
681 0518 0E94 0000 call SendOutData
682 051c 1092 0000 sts GetVersionAnforderung,__zero_reg__
683 .L90:
684 0520 0895 ret
685 /* epilogue: frame size=0 */
686 /* epilogue: noreturn */
687 /* epilogue end (size=0) */
688 /* function DatenUebertragung size 110 (110) */
690 .global BearbeiteRxDaten
692 BearbeiteRxDaten:
693 /* prologue: frame size=2 */
694 0522 1F93 push r17
695 0524 CF93 push r28
696 0526 DF93 push r29
697 0528 CDB7 in r28,__SP_L__
698 052a DEB7 in r29,__SP_H__
699 052c 2297 sbiw r28,2
700 052e 0FB6 in __tmp_reg__,__SREG__
701 0530 F894 cli
702 0532 DEBF out __SP_H__,r29
703 0534 0FBE out __SREG__,__tmp_reg__
704 0536 CDBF out __SP_L__,r28
705 /* prologue end (size=11) */
706 0538 8091 0000 lds r24,NeuerDatensatzEmpfangen
707 053c 8823 tst r24
708 053e 01F4 brne .+2
709 0540 00C0 rjmp .L107
710 0542 8FEF ldi r24,lo8(-1)
711 0544 8093 0000 sts PcZugriff,r24
712 0548 8091 0000 lds r24,RxdBuffer+2
713 054c 8137 cpi r24,lo8(113)
714 054e 00F4 brsh .L102
715 0550 8C36 cpi r24,lo8(108)
716 0552 00F0 brlo .+2
717 0554 00C0 rjmp .L98
718 0556 8736 cpi r24,lo8(103)
719 0558 01F4 brne .+2
720 055a 00C0 rjmp .L96
721 055c 8836 cpi r24,lo8(104)
722 055e 01F0 breq .L97
723 0560 8336 cpi r24,lo8(99)
724 0562 01F0 breq .+2
725 0564 00C0 rjmp .L94
726 0566 00C0 rjmp .L95
727 .L102:
728 0568 8437 cpi r24,lo8(116)
729 056a 01F0 breq .L100
730 056c 8637 cpi r24,lo8(118)
731 056e 01F0 breq .L101
732 0570 8137 cpi r24,lo8(113)
733 0572 01F0 breq .+2
734 0574 00C0 rjmp .L94
735 0576 00C0 rjmp .L99
736 .L95:
737 0578 2091 0000 lds r18,AnzahlEmpfangsBytes
738 057c 43E0 ldi r20,lo8(3)
739 057e 6BE0 ldi r22,lo8(11)
740 0580 80E0 ldi r24,lo8(DebugIn)
741 0582 90E0 ldi r25,hi8(DebugIn)
742 0584 0E94 0000 call Decode64
743 0588 8091 0000 lds r24,RemoteTasten
744 058c 9091 0000 lds r25,DebugIn+2
745 0590 892B or r24,r25
746 0592 8093 0000 sts RemoteTasten,r24
747 0596 81E0 ldi r24,lo8(1)
748 0598 8093 0000 sts DebugDataAnforderung,r24
749 059c 00C0 rjmp .L94
750 .L97:
751 059e 2091 0000 lds r18,AnzahlEmpfangsBytes
752 05a2 43E0 ldi r20,lo8(3)
753 05a4 62E0 ldi r22,lo8(2)
754 05a6 CE01 movw r24,r28
755 05a8 0196 adiw r24,1
756 05aa 0E94 0000 call Decode64
757 05ae 8091 0000 lds r24,RemoteTasten
758 05b2 9981 ldd r25,Y+1
759 05b4 892B or r24,r25
760 05b6 8093 0000 sts RemoteTasten,r24
761 05ba 81E0 ldi r24,lo8(1)
762 05bc 8093 0000 sts DebugDisplayAnforderung,r24
763 05c0 00C0 rjmp .L94
764 .L100:
765 05c2 2091 0000 lds r18,AnzahlEmpfangsBytes
766 05c6 43E0 ldi r20,lo8(3)
767 05c8 64E0 ldi r22,lo8(4)
768 05ca 80E0 ldi r24,lo8(MotorTest)
769 05cc 90E0 ldi r25,hi8(MotorTest)
770 05ce 0E94 0000 call Decode64
771 05d2 00C0 rjmp .L94
772 .L101:
773 05d4 81E0 ldi r24,lo8(1)
774 05d6 8093 0000 sts GetVersionAnforderung,r24
775 05da 00C0 rjmp .L94
776 .L96:
777 05dc 81E0 ldi r24,lo8(1)
778 05de 8093 0000 sts DebugGetAnforderung,r24
779 05e2 00C0 rjmp .L94
780 .L99:
781 05e4 2091 0000 lds r18,AnzahlEmpfangsBytes
782 05e8 43E0 ldi r20,lo8(3)
783 05ea 62E0 ldi r22,lo8(2)
784 05ec CE01 movw r24,r28
785 05ee 0196 adiw r24,1
786 05f0 0E94 0000 call Decode64
787 05f4 8981 ldd r24,Y+1
788 05f6 8F3F cpi r24,lo8(-1)
789 05f8 01F0 breq .L103
790 05fa 8630 cpi r24,lo8(6)
791 05fc 00F0 brlo .L105
792 05fe 85E0 ldi r24,lo8(5)
793 0600 8983 std Y+1,r24
794 .L105:
795 0602 4AE3 ldi r20,lo8(58)
796 0604 60E0 ldi r22,lo8(EE_Parameter)
797 0606 70E0 ldi r23,hi8(EE_Parameter)
798 0608 8981 ldd r24,Y+1
799 060a 0E94 0000 call ReadParameterSet
800 060e 8981 ldd r24,Y+1
801 0610 2AE3 ldi r18,lo8(58)
802 0612 40E0 ldi r20,lo8(EE_Parameter)
803 0614 50E0 ldi r21,hi8(EE_Parameter)
804 0616 6091 0000 lds r22,MeineSlaveAdresse
805 061a 00C0 rjmp .L108
806 .L103:
807 061c 1091 0000 lds r17,MeineSlaveAdresse
808 0620 0E94 0000 call GetActiveParamSetNumber
809 0624 2AE3 ldi r18,lo8(58)
810 0626 40E0 ldi r20,lo8(EE_Parameter)
811 0628 50E0 ldi r21,hi8(EE_Parameter)
812 062a 612F mov r22,r17
813 .L108:
814 062c 855B subi r24,lo8(-(75))
815 062e 0E94 0000 call SendOutData
816 0632 00C0 rjmp .L94
817 .L98:
818 0634 2091 0000 lds r18,AnzahlEmpfangsBytes
819 0638 43E0 ldi r20,lo8(3)
820 063a 6AE3 ldi r22,lo8(58)
821 063c 80E0 ldi r24,lo8(EE_Parameter)
822 063e 90E0 ldi r25,hi8(EE_Parameter)
823 0640 0E94 0000 call Decode64
824 0644 8091 0000 lds r24,RxdBuffer+2
825 0648 4AE3 ldi r20,lo8(58)
826 064a 60E0 ldi r22,lo8(EE_Parameter)
827 064c 70E0 ldi r23,hi8(EE_Parameter)
828 064e 8B56 subi r24,lo8(-(-107))
829 0650 0E94 0000 call WriteParameterSet
830 0654 8091 0000 lds r24,RxdBuffer+2
831 0658 8B56 subi r24,lo8(-(-107))
832 065a A0E0 ldi r26,lo8(EEPromArray+2)
833 065c B0E0 ldi r27,hi8(EEPromArray+2)
834 /* #APP */
835 065e 082E mov __tmp_reg__,r24
836 0660 0E94 0000 call __eeprom_write_byte_1F2021
837 /* #NOAPP */
838 0664 0E94 0000 call GetActiveParamSetNumber
839 0668 9927 clr r25
840 066a 0E94 0000 call Piep
841 .L94:
842 066e 1092 0000 sts NeuerDatensatzEmpfangen,__zero_reg__
843 .L107:
844 /* epilogue: frame size=2 */
845 0672 2296 adiw r28,2
846 0674 0FB6 in __tmp_reg__,__SREG__
847 0676 F894 cli
848 0678 DEBF out __SP_H__,r29
849 067a 0FBE out __SREG__,__tmp_reg__
850 067c CDBF out __SP_L__,r28
851 067e DF91 pop r29
852 0680 CF91 pop r28
853 0682 1F91 pop r17
854 0684 0895 ret
855 /* epilogue end (size=10) */
856 /* function BearbeiteRxDaten size 179 (158) */
858 .global DebugGetAnforderung
859 .global DebugGetAnforderung
860 .section .bss
863 DebugGetAnforderung:
864 0000 00 .skip 1,0
865 .global DebugDisplayAnforderung
866 .global DebugDisplayAnforderung
869 DebugDisplayAnforderung:
870 0001 00 .skip 1,0
871 .global DebugDataAnforderung
872 .global DebugDataAnforderung
875 DebugDataAnforderung:
876 0002 00 .skip 1,0
877 .global GetVersionAnforderung
878 .global GetVersionAnforderung
881 GetVersionAnforderung:
882 0003 00 .skip 1,0
883 .global SioTmp
884 .global SioTmp
887 SioTmp:
888 0004 00 .skip 1,0
889 .global NeuerDatensatzEmpfangen
890 .global NeuerDatensatzEmpfangen
893 NeuerDatensatzEmpfangen:
894 0005 00 .skip 1,0
895 .global NeueKoordinateEmpfangen
896 .global NeueKoordinateEmpfangen
899 NeueKoordinateEmpfangen:
900 0006 00 .skip 1,0
901 .global UebertragungAbgeschlossen
902 .data
905 UebertragungAbgeschlossen:
906 0000 01 .byte 1
907 .global CntCrcError
908 .global CntCrcError
909 .section .bss
912 CntCrcError:
913 0007 00 .skip 1,0
914 .global AnzahlEmpfangsBytes
915 .global AnzahlEmpfangsBytes
918 AnzahlEmpfangsBytes:
919 0008 00 .skip 1,0
920 .global PC_DebugTimeout
921 .global PC_DebugTimeout
924 PC_DebugTimeout:
925 0009 00 .skip 1,0
926 .global PcZugriff
927 .data
930 PcZugriff:
931 0001 64 .byte 100
932 .global MotorTest
933 .global MotorTest
934 .section .bss
937 MotorTest:
938 000a 0000 0000 .skip 4,0
939 .lcomm dis_zeile.2217,1
940 .lcomm UartState.1973,1
941 .lcomm buf_ptr.1972,1
942 .lcomm crc2.1971,1
943 .lcomm crc1.1970,1
944 .lcomm crc.1969,2
945 .lcomm ptr.1956,2
946 .comm DiffNick,2,1
947 .comm DiffRoll,2,1
948 .comm SenderOkay,1,1
949 .comm CosinusNickWinkel,1,1
950 .comm CosinusRollWinkel,1,1
951 .comm SendeBuffer,150,1
952 .comm RxdBuffer,150,1
953 .comm MeineSlaveAdresse,1,1
954 .comm Debug_Timer,2,1
955 .comm DebugOut,50,1
956 .comm DebugIn,11,1
957 .comm VersionInfo,10,1
958 .comm RemoteTasten,1,1
959 .comm Timeout,1,1
960 .comm IntegralNick,4,1
961 .comm IntegralNick2,4,1
962 .comm IntegralRoll,4,1
963 .comm IntegralRoll2,4,1
964 .comm Mess_IntegralNick,4,1
965 .comm Mess_IntegralNick2,4,1
966 .comm Mess_IntegralRoll,4,1
967 .comm Mess_IntegralRoll2,4,1
968 .comm Integral_Gier,4,1
969 .comm Mess_Integral_Gier,4,1
970 .comm h,1,1
971 .comm m,1,1
972 .comm s,1,1
973 .comm Motor_Vorne,1,1
974 .comm Motor_Hinten,1,1
975 .comm Motor_Rechts,1,1
976 .comm Motor_Links,1,1
977 .comm Count,1,1
978 .comm MotorWert,5,1
979 .comm StickNick,2,1
980 .comm StickRoll,2,1
981 .comm StickGier,2,1
982 .comm MotorenEin,1,1
983 .comm NMEABuffer,150,1
984 /* File "uart.c": code 844 = 0x034c ( 747), prologues 46, epilogues 51 */
DEFINED SYMBOLS
*ABS*:00000000 uart.c
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:3 *ABS*:0000003f __SREG__
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:4 *ABS*:0000003e __SP_H__
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:5 *ABS*:0000003d __SP_L__
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:6 *ABS*:00000000 __tmp_reg__
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:7 *ABS*:00000001 __zero_reg__
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:13 .text:00000000 __vector_22
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:905 .data:00000000 UebertragungAbgeschlossen
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:944 .bss:00000015 ptr.1956
*COM*:00000096 SendeBuffer
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:69 .text:0000006c __vector_20
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:887 .bss:00000004 SioTmp
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:940 .bss:00000010 buf_ptr.1972
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:939 .bss:0000000f UartState.1973
*COM*:00000096 RxdBuffer
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:943 .bss:00000013 crc.1969
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:942 .bss:00000012 crc1.1970
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:941 .bss:00000011 crc2.1971
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:912 .bss:00000007 CntCrcError
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:893 .bss:00000005 NeuerDatensatzEmpfangen
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:918 .bss:00000008 AnzahlEmpfangsBytes
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:263 .text:00000210 AddCRC
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:317 .text:0000026c SendOutData
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:431 .text:0000033c Decode64
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:531 .text:000003ec uart_putchar
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:555 .text:0000040e WriteProgramData
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:565 .text:00000410 UART_Init
*COM*:00000002 Debug_Timer
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:597 .text:00000446 DatenUebertragung
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:863 .bss:00000000 DebugGetAnforderung
*COM*:0000000b DebugIn
*COM*:00000001 MeineSlaveAdresse
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:875 .bss:00000002 DebugDataAnforderung
*COM*:00000032 DebugOut
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:869 .bss:00000001 DebugDisplayAnforderung
.bss:0000000e dis_zeile.2217
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:881 .bss:00000003 GetVersionAnforderung
*COM*:0000000a VersionInfo
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:692 .text:00000522 BearbeiteRxDaten
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:930 .data:00000001 PcZugriff
*COM*:00000001 RemoteTasten
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:937 .bss:0000000a MotorTest
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:899 .bss:00000006 NeueKoordinateEmpfangen
C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:924 .bss:00000009 PC_DebugTimeout
*COM*:00000002 DiffNick
*COM*:00000002 DiffRoll
*COM*:00000001 SenderOkay
*COM*:00000001 CosinusNickWinkel
*COM*:00000001 CosinusRollWinkel
*COM*:00000001 Timeout
*COM*:00000004 IntegralNick
*COM*:00000004 IntegralNick2
*COM*:00000004 IntegralRoll
*COM*:00000004 IntegralRoll2
*COM*:00000004 Mess_IntegralNick
*COM*:00000004 Mess_IntegralNick2
*COM*:00000004 Mess_IntegralRoll
*COM*:00000004 Mess_IntegralRoll2
*COM*:00000004 Integral_Gier
*COM*:00000004 Mess_Integral_Gier
*COM*:00000001 h
*COM*:00000001 m
*COM*:00000001 s
*COM*:00000001 Motor_Vorne
*COM*:00000001 Motor_Hinten
*COM*:00000001 Motor_Rechts
*COM*:00000001 Motor_Links
*COM*:00000001 Count
*COM*:00000005 MotorWert
*COM*:00000002 StickNick
*COM*:00000002 StickRoll
*COM*:00000002 StickGier
*COM*:00000001 MotorenEin
*COM*:00000096 NMEABuffer
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
SetDelay
CheckDelay
Menu
DisplayBuff
EE_Parameter
ReadParameterSet
GetActiveParamSetNumber
WriteParameterSet
EEPromArray
__eeprom_write_byte_1F2021
Piep