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