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.2090 29 001e 9091 0000 lds r25,(ptr.2090)+1 30 0022 0196 adiw r24,1 31 0024 9093 0000 sts (ptr.2090)+1,r25 32 0028 8093 0000 sts ptr.2090,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.2090)+1,__zero_reg__ 44 0042 1092 0000 sts ptr.2090,__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.2090)+1,__zero_reg__ 52 0056 1092 0000 sts ptr.2090,__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 GPSscanData 69 GPSscanData: 70 /* prologue: frame size=0 */ 71 /* prologue end (size=0) */ 72 006c 8091 0000 lds r24,navPosECEF+20 73 0070 8130 cpi r24,lo8(1) 74 0072 01F4 brne .L10 75 0074 8091 0000 lds r24,navPosECEF+4 76 0078 9091 0000 lds r25,(navPosECEF+4)+1 77 007c A091 0000 lds r26,(navPosECEF+4)+2 78 0080 B091 0000 lds r27,(navPosECEF+4)+3 79 0084 8093 0000 sts actualPos,r24 80 0088 9093 0000 sts (actualPos)+1,r25 81 008c A093 0000 sts (actualPos)+2,r26 82 0090 B093 0000 sts (actualPos)+3,r27 83 0094 8091 0000 lds r24,navPosECEF+8 84 0098 9091 0000 lds r25,(navPosECEF+8)+1 85 009c A091 0000 lds r26,(navPosECEF+8)+2 86 00a0 B091 0000 lds r27,(navPosECEF+8)+3 87 00a4 8093 0000 sts actualPos+4,r24 88 00a8 9093 0000 sts (actualPos+4)+1,r25 89 00ac A093 0000 sts (actualPos+4)+2,r26 90 00b0 B093 0000 sts (actualPos+4)+3,r27 91 00b4 8091 0000 lds r24,navPosECEF+12 92 00b8 9091 0000 lds r25,(navPosECEF+12)+1 93 00bc A091 0000 lds r26,(navPosECEF+12)+2 94 00c0 B091 0000 lds r27,(navPosECEF+12)+3 95 00c4 8093 0000 sts actualPos+8,r24 96 00c8 9093 0000 sts (actualPos+8)+1,r25 97 00cc A093 0000 sts (actualPos+8)+2,r26 98 00d0 B093 0000 sts (actualPos+8)+3,r27 99 00d4 1092 0000 sts navPosECEF+20,__zero_reg__ 100 .L10: 101 00d8 9091 0000 lds r25,navStatus+16 102 00dc 9130 cpi r25,lo8(1) 103 00de 01F4 brne .L12 104 00e0 8091 0000 lds r24,navStatus+4 105 00e4 8093 0000 sts actualPos+45,r24 106 00e8 9093 0000 sts actualPos+44,r25 107 00ec 1092 0000 sts navStatus+16,__zero_reg__ 108 .L12: 109 00f0 8091 0000 lds r24,navVelECEF+20 110 00f4 8130 cpi r24,lo8(1) 111 00f6 01F4 brne .L14 112 00f8 8091 0000 lds r24,navVelECEF+4 113 00fc 9091 0000 lds r25,(navVelECEF+4)+1 114 0100 A091 0000 lds r26,(navVelECEF+4)+2 115 0104 B091 0000 lds r27,(navVelECEF+4)+3 116 0108 8093 0000 sts actualPos+12,r24 117 010c 9093 0000 sts (actualPos+12)+1,r25 118 0110 A093 0000 sts (actualPos+12)+2,r26 119 0114 B093 0000 sts (actualPos+12)+3,r27 120 0118 8091 0000 lds r24,navVelECEF+8 121 011c 9091 0000 lds r25,(navVelECEF+8)+1 122 0120 A091 0000 lds r26,(navVelECEF+8)+2 123 0124 B091 0000 lds r27,(navVelECEF+8)+3 124 0128 8093 0000 sts actualPos+16,r24 125 012c 9093 0000 sts (actualPos+16)+1,r25 126 0130 A093 0000 sts (actualPos+16)+2,r26 127 0134 B093 0000 sts (actualPos+16)+3,r27 128 0138 8091 0000 lds r24,navVelECEF+12 129 013c 9091 0000 lds r25,(navVelECEF+12)+1 130 0140 A091 0000 lds r26,(navVelECEF+12)+2 131 0144 B091 0000 lds r27,(navVelECEF+12)+3 132 0148 8093 0000 sts actualPos+20,r24 133 014c 9093 0000 sts (actualPos+20)+1,r25 134 0150 A093 0000 sts (actualPos+20)+2,r26 135 0154 B093 0000 sts (actualPos+20)+3,r27 136 0158 1092 0000 sts navVelECEF+20,__zero_reg__ 137 .L14: 138 015c 8091 0000 lds r24,navPosUtm+18 139 0160 8130 cpi r24,lo8(1) 140 0162 01F4 brne .L16 141 0164 8091 0000 lds r24,navPosUtm+8 142 0168 9091 0000 lds r25,(navPosUtm+8)+1 143 016c A091 0000 lds r26,(navPosUtm+8)+2 144 0170 B091 0000 lds r27,(navPosUtm+8)+3 145 0174 8093 0000 sts actualPos+24,r24 146 0178 9093 0000 sts (actualPos+24)+1,r25 147 017c A093 0000 sts (actualPos+24)+2,r26 148 0180 B093 0000 sts (actualPos+24)+3,r27 149 0184 8091 0000 lds r24,navPosUtm+4 150 0188 9091 0000 lds r25,(navPosUtm+4)+1 151 018c A091 0000 lds r26,(navPosUtm+4)+2 152 0190 B091 0000 lds r27,(navPosUtm+4)+3 153 0194 8093 0000 sts actualPos+28,r24 154 0198 9093 0000 sts (actualPos+28)+1,r25 155 019c A093 0000 sts (actualPos+28)+2,r26 156 01a0 B093 0000 sts (actualPos+28)+3,r27 157 01a4 8091 0000 lds r24,navPosUtm+12 158 01a8 9091 0000 lds r25,(navPosUtm+12)+1 159 01ac A091 0000 lds r26,(navPosUtm+12)+2 160 01b0 B091 0000 lds r27,(navPosUtm+12)+3 161 01b4 8093 0000 sts actualPos+32,r24 162 01b8 9093 0000 sts (actualPos+32)+1,r25 163 01bc A093 0000 sts (actualPos+32)+2,r26 164 01c0 B093 0000 sts (actualPos+32)+3,r27 165 01c4 1092 0000 sts navPosUtm+18,__zero_reg__ 166 .L16: 167 01c8 8091 0000 lds r24,navVelNed+36 168 01cc 8130 cpi r24,lo8(1) 169 01ce 01F4 brne .L18 170 01d0 8091 0000 lds r24,navVelNed+4 171 01d4 9091 0000 lds r25,(navVelNed+4)+1 172 01d8 A091 0000 lds r26,(navVelNed+4)+2 173 01dc B091 0000 lds r27,(navVelNed+4)+3 174 01e0 8093 0000 sts actualPos+36,r24 175 01e4 9093 0000 sts (actualPos+36)+1,r25 176 01e8 A093 0000 sts (actualPos+36)+2,r26 177 01ec B093 0000 sts (actualPos+36)+3,r27 178 01f0 8091 0000 lds r24,navVelNed+8 179 01f4 9091 0000 lds r25,(navVelNed+8)+1 180 01f8 A091 0000 lds r26,(navVelNed+8)+2 181 01fc B091 0000 lds r27,(navVelNed+8)+3 182 0200 8093 0000 sts actualPos+40,r24 183 0204 9093 0000 sts (actualPos+40)+1,r25 184 0208 A093 0000 sts (actualPos+40)+2,r26 185 020c B093 0000 sts (actualPos+40)+3,r27 186 0210 1092 0000 sts navVelNed+36,__zero_reg__ 187 .L18: 188 0214 8091 0000 lds r24,actualPos+44 189 0218 8111 cpse r24,__zero_reg__ 190 021a 289A sbi 37-0x20,0 191 .L22: 192 021c 0895 ret 193 /* epilogue: frame size=0 */ 194 /* epilogue: noreturn */ 195 /* epilogue end (size=0) */ 196 /* function GPSscanData size 218 (218) */ 198 .global __vector_20 200 __vector_20: 201 /* prologue: frame size=0 */ 202 021e 1F92 push __zero_reg__ 203 0220 0F92 push __tmp_reg__ 204 0222 0FB6 in __tmp_reg__,__SREG__ 205 0224 0F92 push __tmp_reg__ 206 0226 1124 clr __zero_reg__ 207 0228 2F93 push r18 208 022a 3F93 push r19 209 022c 4F93 push r20 210 022e 5F93 push r21 211 0230 6F93 push r22 212 0232 7F93 push r23 213 0234 8F93 push r24 214 0236 9F93 push r25 215 0238 AF93 push r26 216 023a BF93 push r27 217 023c CF93 push r28 218 023e DF93 push r29 219 0240 EF93 push r30 220 0242 FF93 push r31 221 /* prologue end (size=19) */ 222 0244 8091 C600 lds r24,198 223 0248 8093 0000 sts SioTmp,r24 224 024c 8091 C000 lds r24,192 225 0250 4091 0000 lds r20,SioTmp 226 0254 8871 andi r24,lo8(24) 227 0256 01F0 breq .+2 228 0258 00C0 rjmp .L24 229 025a 8091 0000 lds r24,gpsState 230 025e 8430 cpi r24,lo8(4) 231 0260 01F4 brne .+2 232 0262 00C0 rjmp .L31 233 0264 8530 cpi r24,lo8(5) 234 0266 00F4 brsh .L36 235 0268 8130 cpi r24,lo8(1) 236 026a 01F0 breq .L28 237 026c 8130 cpi r24,lo8(1) 238 026e 00F0 brlo .L27 239 0270 8230 cpi r24,lo8(2) 240 0272 01F0 breq .L29 241 0274 8330 cpi r24,lo8(3) 242 0276 01F0 breq .+2 243 0278 00C0 rjmp .L26 244 027a 00C0 rjmp .L30 245 .L36: 246 027c 8630 cpi r24,lo8(6) 247 027e 01F4 brne .+2 248 0280 00C0 rjmp .L33 249 0282 8630 cpi r24,lo8(6) 250 0284 00F4 brsh .+2 251 0286 00C0 rjmp .L32 252 0288 8730 cpi r24,lo8(7) 253 028a 01F4 brne .+2 254 028c 00C0 rjmp .L34 255 028e 8830 cpi r24,lo8(8) 256 0290 01F0 breq .+2 257 0292 00C0 rjmp .L26 258 0294 00C0 rjmp .L35 259 .L27: 260 0296 453B cpi r20,lo8(-75) 261 0298 01F0 breq .+2 262 029a 00C0 rjmp .L37 263 029c 81E0 ldi r24,lo8(1) 264 029e 00C0 rjmp .L85 265 .L28: 266 02a0 4236 cpi r20,lo8(98) 267 02a2 01F4 brne .L39 268 02a4 82E0 ldi r24,lo8(2) 269 .L85: 270 02a6 8093 0000 sts gpsState,r24 271 02aa 00C0 rjmp .L37 272 .L39: 273 02ac 453B cpi r20,lo8(-75) 274 02ae 01F4 brne .+2 275 02b0 00C0 rjmp .L37 276 02b2 00C0 rjmp .L26 277 .L29: 278 02b4 4130 cpi r20,lo8(1) 279 02b6 01F0 breq .+2 280 02b8 00C0 rjmp .L26 281 02ba 83E0 ldi r24,lo8(3) 282 02bc 00C0 rjmp .L85 283 .L30: 284 02be 4093 0000 sts msgID,r20 285 02c2 4F5F subi r20,lo8(-(1)) 286 02c4 4093 0000 sts CK_A,r20 287 02c8 8091 0000 lds r24,CK_A 288 02cc 8F5F subi r24,lo8(-(1)) 289 02ce 8093 0000 sts CK_B,r24 290 02d2 84E0 ldi r24,lo8(4) 291 02d4 8093 0000 sts gpsState,r24 292 02d8 8091 0000 lds r24,msgID 293 02dc 8830 cpi r24,lo8(8) 294 02de 01F4 brne .+2 295 02e0 00C0 rjmp .L47 296 02e2 8930 cpi r24,lo8(9) 297 02e4 00F4 brsh .L50 298 02e6 8130 cpi r24,lo8(1) 299 02e8 01F0 breq .L45 300 02ea 8330 cpi r24,lo8(3) 301 02ec 01F0 breq .+2 302 02ee 00C0 rjmp .L44 303 02f0 00C0 rjmp .L46 304 .L50: 305 02f2 8131 cpi r24,lo8(17) 306 02f4 01F0 breq .L48 307 02f6 8231 cpi r24,lo8(18) 308 02f8 01F0 breq .+2 309 02fa 00C0 rjmp .L44 310 02fc 00C0 rjmp .L49 311 .L46: 312 02fe 80E0 ldi r24,lo8(navStatus) 313 0300 90E0 ldi r25,hi8(navStatus) 314 0302 9093 0000 sts (ubxP)+1,r25 315 0306 8093 0000 sts ubxP,r24 316 030a 20E0 ldi r18,lo8(navStatus+289) 317 030c 30E0 ldi r19,hi8(navStatus+289) 318 030e 3093 0000 sts (ubxEp)+1,r19 319 0312 2093 0000 sts ubxEp,r18 320 0316 4096 adiw r24,16 321 0318 9093 0000 sts (ubxSp)+1,r25 322 031c 8093 0000 sts ubxSp,r24 323 0320 8091 0000 lds r24,navStatus+16 324 0324 00C0 rjmp .L86 325 .L45: 326 0326 80E0 ldi r24,lo8(navPosECEF) 327 0328 90E0 ldi r25,hi8(navPosECEF) 328 032a 9093 0000 sts (ubxP)+1,r25 329 032e 8093 0000 sts ubxP,r24 330 0332 20E0 ldi r18,lo8(navPosECEF+441) 331 0334 30E0 ldi r19,hi8(navPosECEF+441) 332 0336 3093 0000 sts (ubxEp)+1,r19 333 033a 2093 0000 sts ubxEp,r18 334 033e 4496 adiw r24,20 335 0340 9093 0000 sts (ubxSp)+1,r25 336 0344 8093 0000 sts ubxSp,r24 337 0348 8091 0000 lds r24,navPosECEF+20 338 034c 00C0 rjmp .L86 339 .L48: 340 034e 80E0 ldi r24,lo8(navVelECEF) 341 0350 90E0 ldi r25,hi8(navVelECEF) 342 0352 9093 0000 sts (ubxP)+1,r25 343 0356 8093 0000 sts ubxP,r24 344 035a 20E0 ldi r18,lo8(navVelECEF+441) 345 035c 30E0 ldi r19,hi8(navVelECEF+441) 346 035e 3093 0000 sts (ubxEp)+1,r19 347 0362 2093 0000 sts ubxEp,r18 348 0366 4496 adiw r24,20 349 0368 9093 0000 sts (ubxSp)+1,r25 350 036c 8093 0000 sts ubxSp,r24 351 0370 8091 0000 lds r24,navVelECEF+20 352 0374 00C0 rjmp .L86 353 .L47: 354 0376 80E0 ldi r24,lo8(navPosUtm) 355 0378 90E0 ldi r25,hi8(navPosUtm) 356 037a 9093 0000 sts (ubxP)+1,r25 357 037e 8093 0000 sts ubxP,r24 358 0382 20E0 ldi r18,lo8(navPosUtm+361) 359 0384 30E0 ldi r19,hi8(navPosUtm+361) 360 0386 3093 0000 sts (ubxEp)+1,r19 361 038a 2093 0000 sts ubxEp,r18 362 038e 4296 adiw r24,18 363 0390 9093 0000 sts (ubxSp)+1,r25 364 0394 8093 0000 sts ubxSp,r24 365 0398 8091 0000 lds r24,navPosUtm+18 366 039c 00C0 rjmp .L86 367 .L49: 368 039e 80E0 ldi r24,lo8(navVelNed) 369 03a0 90E0 ldi r25,hi8(navVelNed) 370 03a2 9093 0000 sts (ubxP)+1,r25 371 03a6 8093 0000 sts ubxP,r24 372 03aa 20E0 ldi r18,lo8(navVelNed+1369) 373 03ac 30E0 ldi r19,hi8(navVelNed+1369) 374 03ae 3093 0000 sts (ubxEp)+1,r19 375 03b2 2093 0000 sts ubxEp,r18 376 03b6 8496 adiw r24,36 377 03b8 9093 0000 sts (ubxSp)+1,r25 378 03bc 8093 0000 sts ubxSp,r24 379 03c0 8091 0000 lds r24,navVelNed+36 380 .L86: 381 03c4 8093 0000 sts ignorePacket,r24 382 03c8 00C0 rjmp .L37 383 .L44: 384 03ca 81E0 ldi r24,lo8(1) 385 03cc 8093 0000 sts ignorePacket,r24 386 03d0 1092 0000 sts (ubxSp)+1,__zero_reg__ 387 03d4 1092 0000 sts ubxSp,__zero_reg__ 388 03d8 00C0 rjmp .L37 389 .L31: 390 03da 842F mov r24,r20 391 03dc 9927 clr r25 392 03de 9093 0000 sts (msgLen)+1,r25 393 03e2 8093 0000 sts msgLen,r24 394 03e6 8091 0000 lds r24,CK_A 395 03ea 840F add r24,r20 396 03ec 8093 0000 sts CK_A,r24 397 03f0 8091 0000 lds r24,CK_B 398 03f4 9091 0000 lds r25,CK_A 399 03f8 890F add r24,r25 400 03fa 8093 0000 sts CK_B,r24 401 03fe 85E0 ldi r24,lo8(5) 402 0400 00C0 rjmp .L85 403 .L32: 404 0402 2091 0000 lds r18,msgLen 405 0406 3091 0000 lds r19,(msgLen)+1 406 040a 842F mov r24,r20 407 040c 9927 clr r25 408 040e 982F mov r25,r24 409 0410 8827 clr r24 410 0412 280F add r18,r24 411 0414 391F adc r19,r25 412 0416 3093 0000 sts (msgLen)+1,r19 413 041a 2093 0000 sts msgLen,r18 414 041e 8091 0000 lds r24,CK_A 415 0422 840F add r24,r20 416 0424 8093 0000 sts CK_A,r24 417 0428 8091 0000 lds r24,CK_B 418 042c 9091 0000 lds r25,CK_A 419 0430 890F add r24,r25 420 0432 8093 0000 sts CK_B,r24 421 0436 86E0 ldi r24,lo8(6) 422 0438 00C0 rjmp .L85 423 .L33: 424 043a 8091 0000 lds r24,CK_A 425 043e 840F add r24,r20 426 0440 8093 0000 sts CK_A,r24 427 0444 8091 0000 lds r24,CK_B 428 0448 9091 0000 lds r25,CK_A 429 044c 890F add r24,r25 430 044e 8093 0000 sts CK_B,r24 431 0452 8091 0000 lds r24,ignorePacket 432 0456 8823 tst r24 433 0458 01F4 brne .L51 434 045a E091 0000 lds r30,ubxP 435 045e F091 0000 lds r31,(ubxP)+1 436 0462 8091 0000 lds r24,ubxEp 437 0466 9091 0000 lds r25,(ubxEp)+1 438 046a E817 cp r30,r24 439 046c F907 cpc r31,r25 440 046e 00F4 brsh .L51 441 0470 4193 st Z+,r20 442 0472 F093 0000 sts (ubxP)+1,r31 443 0476 E093 0000 sts ubxP,r30 444 .L51: 445 047a 8091 0000 lds r24,msgLen 446 047e 9091 0000 lds r25,(msgLen)+1 447 0482 0197 sbiw r24,1 448 0484 9093 0000 sts (msgLen)+1,r25 449 0488 8093 0000 sts msgLen,r24 450 048c 8091 0000 lds r24,msgLen 451 0490 9091 0000 lds r25,(msgLen)+1 452 0494 892B or r24,r25 453 0496 01F4 brne .L37 454 0498 87E0 ldi r24,lo8(7) 455 049a 00C0 rjmp .L85 456 .L34: 457 049c 8091 0000 lds r24,CK_A 458 04a0 4817 cp r20,r24 459 04a2 01F4 brne .L26 460 04a4 88E0 ldi r24,lo8(8) 461 04a6 00C0 rjmp .L85 462 .L35: 463 04a8 8091 0000 lds r24,CK_B 464 04ac 4817 cp r20,r24 465 04ae 01F4 brne .L26 466 04b0 E091 0000 lds r30,ubxSp 467 04b4 F091 0000 lds r31,(ubxSp)+1 468 04b8 3097 sbiw r30,0 469 04ba 01F0 breq .L26 470 04bc 81E0 ldi r24,lo8(1) 471 04be 8083 st Z,r24 472 .L26: 473 04c0 1092 0000 sts gpsState,__zero_reg__ 474 04c4 00C0 rjmp .L37 475 .L24: 476 04c6 1092 0000 sts gpsState,__zero_reg__ 477 04ca 0E94 0000 call GPSscanData 478 .L37: 479 04ce 0E94 0000 call GPSscanData 480 04d2 4091 0000 lds r20,buf_ptr.2130 481 04d6 4639 cpi r20,lo8(-106) 482 04d8 00F0 brlo .L60 483 04da 1092 0000 sts UartState.2131,__zero_reg__ 484 .L60: 485 04de 8091 0000 lds r24,SioTmp 486 04e2 8D30 cpi r24,lo8(13) 487 04e4 01F0 breq .+2 488 04e6 00C0 rjmp .L62 489 04e8 8091 0000 lds r24,UartState.2131 490 04ec 8230 cpi r24,lo8(2) 491 04ee 01F0 breq .+2 492 04f0 00C0 rjmp .L62 493 04f2 1092 0000 sts UartState.2131,__zero_reg__ 494 04f6 A42F mov r26,r20 495 04f8 BB27 clr r27 496 04fa FD01 movw r30,r26 497 04fc E050 subi r30,lo8(-(RxdBuffer-2)) 498 04fe F040 sbci r31,hi8(-(RxdBuffer-2)) 499 0500 3081 ld r19,Z 500 0502 ED01 movw r28,r26 501 0504 C050 subi r28,lo8(-(RxdBuffer-1)) 502 0506 D040 sbci r29,hi8(-(RxdBuffer-1)) 503 0508 2881 ld r18,Y 504 050a 8091 0000 lds r24,crc.2127 505 050e 9091 0000 lds r25,(crc.2127)+1 506 0512 831B sub r24,r19 507 0514 9109 sbc r25,__zero_reg__ 508 0516 821B sub r24,r18 509 0518 9109 sbc r25,__zero_reg__ 510 051a 9F70 andi r25,hi8(4095) 511 051c 9093 0000 sts (crc.2127)+1,r25 512 0520 8093 0000 sts crc.2127,r24 513 0524 9C01 movw r18,r24 514 0526 96E0 ldi r25,6 515 0528 3695 1: lsr r19 516 052a 2795 ror r18 517 052c 9A95 dec r25 518 052e 01F4 brne 1b 519 0530 235C subi r18,lo8(-(61)) 520 0532 2093 0000 sts crc1.2128,r18 521 0536 982F mov r25,r24 522 0538 9F73 andi r25,lo8(63) 523 053a 935C subi r25,lo8(-(61)) 524 053c 9093 0000 sts crc2.2129,r25 525 0540 8081 ld r24,Z 526 0542 2817 cp r18,r24 527 0544 01F4 brne .L65 528 0546 8881 ld r24,Y 529 0548 9817 cp r25,r24 530 054a 01F4 brne .L65 531 054c 91E0 ldi r25,lo8(1) 532 054e 00C0 rjmp .L68 533 .L65: 534 0550 8091 0000 lds r24,CntCrcError 535 0554 8F5F subi r24,lo8(-(1)) 536 0556 8093 0000 sts CntCrcError,r24 537 055a 90E0 ldi r25,lo8(0) 538 .L68: 539 055c 8091 0000 lds r24,NeuerDatensatzEmpfangen 540 0560 8823 tst r24 541 0562 01F0 breq .+2 542 0564 00C0 rjmp .L83 543 0566 9923 tst r25 544 0568 01F4 brne .+2 545 056a 00C0 rjmp .L83 546 056c 81E0 ldi r24,lo8(1) 547 056e 8093 0000 sts NeuerDatensatzEmpfangen,r24 548 0572 4093 0000 sts AnzahlEmpfangsBytes,r20 549 0576 A050 subi r26,lo8(-(RxdBuffer)) 550 0578 B040 sbci r27,hi8(-(RxdBuffer)) 551 057a 8DE0 ldi r24,lo8(13) 552 057c 8C93 st X,r24 553 057e 8091 0000 lds r24,RxdBuffer+2 554 0582 8235 cpi r24,lo8(82) 555 0584 01F0 breq .+2 556 0586 00C0 rjmp .L83 557 0588 88E1 ldi r24,lo8(24) 558 058a 90E0 ldi r25,hi8(24) 559 058c 2CE0 ldi r18,lo8(12) 560 /* #APP */ 561 058e 0FB6 in __tmp_reg__,__SREG__ 562 0590 F894 cli 563 0592 A895 wdr 564 0594 8093 6000 sts 96,r24 565 0598 0FBE out __SREG__,__tmp_reg__ 566 059a 2093 6000 sts 96,r18 567 /* #NOAPP */ 568 059e 00C0 rjmp .L83 569 .L62: 570 05a0 8091 0000 lds r24,UartState.2131 571 05a4 8130 cpi r24,lo8(1) 572 05a6 01F0 breq .L75 573 05a8 8130 cpi r24,lo8(1) 574 05aa 00F0 brlo .L74 575 05ac 8230 cpi r24,lo8(2) 576 05ae 01F4 brne .L84 577 05b0 00C0 rjmp .L76 578 .L74: 579 05b2 8091 0000 lds r24,SioTmp 580 05b6 8332 cpi r24,lo8(35) 581 05b8 01F4 brne .L77 582 05ba 8091 0000 lds r24,NeuerDatensatzEmpfangen 583 05be 8823 tst r24 584 05c0 01F4 brne .L77 585 05c2 81E0 ldi r24,lo8(1) 586 05c4 8093 0000 sts UartState.2131,r24 587 .L77: 588 05c8 8091 0000 lds r24,SioTmp 589 05cc 8093 0000 sts RxdBuffer,r24 590 05d0 81E0 ldi r24,lo8(1) 591 05d2 8093 0000 sts buf_ptr.2130,r24 592 05d6 8091 0000 lds r24,SioTmp 593 05da 9927 clr r25 594 05dc 00C0 rjmp .L87 595 .L75: 596 05de 82E0 ldi r24,lo8(2) 597 05e0 8093 0000 sts UartState.2131,r24 598 05e4 E42F mov r30,r20 599 05e6 FF27 clr r31 600 05e8 8091 0000 lds r24,SioTmp 601 05ec E050 subi r30,lo8(-(RxdBuffer)) 602 05ee F040 sbci r31,hi8(-(RxdBuffer)) 603 05f0 8083 st Z,r24 604 .L89: 605 05f2 4F5F subi r20,lo8(-(1)) 606 05f4 4093 0000 sts buf_ptr.2130,r20 607 .L88: 608 05f8 2091 0000 lds r18,SioTmp 609 05fc 8091 0000 lds r24,crc.2127 610 0600 9091 0000 lds r25,(crc.2127)+1 611 0604 820F add r24,r18 612 0606 911D adc r25,__zero_reg__ 613 .L87: 614 0608 9093 0000 sts (crc.2127)+1,r25 615 060c 8093 0000 sts crc.2127,r24 616 0610 00C0 rjmp .L83 617 .L76: 618 0612 E42F mov r30,r20 619 0614 FF27 clr r31 620 0616 8091 0000 lds r24,SioTmp 621 061a E050 subi r30,lo8(-(RxdBuffer)) 622 061c F040 sbci r31,hi8(-(RxdBuffer)) 623 061e 8083 st Z,r24 624 0620 4639 cpi r20,lo8(-106) 625 0622 00F0 brlo .L89 626 0624 1092 0000 sts UartState.2131,__zero_reg__ 627 0628 00C0 rjmp .L88 628 .L84: 629 062a 1092 0000 sts UartState.2131,__zero_reg__ 630 .L83: 631 /* epilogue: frame size=0 */ 632 062e FF91 pop r31 633 0630 EF91 pop r30 634 0632 DF91 pop r29 635 0634 CF91 pop r28 636 0636 BF91 pop r27 637 0638 AF91 pop r26 638 063a 9F91 pop r25 639 063c 8F91 pop r24 640 063e 7F91 pop r23 641 0640 6F91 pop r22 642 0642 5F91 pop r21 643 0644 4F91 pop r20 644 0646 3F91 pop r19 645 0648 2F91 pop r18 646 064a 0F90 pop __tmp_reg__ 647 064c 0FBE out __SREG__,__tmp_reg__ 648 064e 0F90 pop __tmp_reg__ 649 0650 1F90 pop __zero_reg__ 650 0652 1895 reti 651 /* epilogue end (size=19) */ 652 /* function __vector_20 size 545 (507) */ 654 .global AddCRC 656 AddCRC: 657 /* prologue: frame size=0 */ 658 /* prologue end (size=0) */ 659 0654 DC01 movw r26,r24 660 0656 20E0 ldi r18,lo8(0) 661 0658 30E0 ldi r19,hi8(0) 662 065a 40E0 ldi r20,lo8(0) 663 065c 50E0 ldi r21,hi8(0) 664 065e E0E0 ldi r30,lo8(SendeBuffer) 665 0660 F0E0 ldi r31,hi8(SendeBuffer) 666 0662 00C0 rjmp .L91 667 .L92: 668 0664 8191 ld r24,Z+ 669 0666 280F add r18,r24 670 0668 311D adc r19,__zero_reg__ 671 066a 4F5F subi r20,lo8(-(1)) 672 066c 5F4F sbci r21,hi8(-(1)) 673 .L91: 674 066e 4A17 cp r20,r26 675 0670 5B07 cpc r21,r27 676 0672 01F4 brne .L92 677 0674 3F70 andi r19,hi8(4095) 678 0676 C901 movw r24,r18 679 0678 66E0 ldi r22,6 680 067a 9695 1: lsr r25 681 067c 8795 ror r24 682 067e 6A95 dec r22 683 0680 01F4 brne 1b 684 0682 835C subi r24,lo8(-(61)) 685 0684 FD01 movw r30,r26 686 0686 E050 subi r30,lo8(-(SendeBuffer)) 687 0688 F040 sbci r31,hi8(-(SendeBuffer)) 688 068a 8083 st Z,r24 689 068c 1196 adiw r26,1 690 068e 2F73 andi r18,lo8(63) 691 0690 235C subi r18,lo8(-(61)) 692 0692 FD01 movw r30,r26 693 0694 E050 subi r30,lo8(-(SendeBuffer)) 694 0696 F040 sbci r31,hi8(-(SendeBuffer)) 695 0698 2083 st Z,r18 696 069a A050 subi r26,lo8(-(SendeBuffer+1)) 697 069c B040 sbci r27,hi8(-(SendeBuffer+1)) 698 069e 8DE0 ldi r24,lo8(13) 699 06a0 8C93 st X,r24 700 06a2 1092 0000 sts UebertragungAbgeschlossen,__zero_reg__ 701 06a6 8091 0000 lds r24,SendeBuffer 702 06aa 8093 C600 sts 198,r24 703 /* epilogue: frame size=0 */ 704 06ae 0895 ret 705 /* epilogue end (size=1) */ 706 /* function AddCRC size 47 (46) */ 708 .global SendOutData 710 SendOutData: 711 /* prologue: frame size=0 */ 712 06b0 EF92 push r14 713 06b2 FF92 push r15 714 06b4 0F93 push r16 715 06b6 1F93 push r17 716 06b8 CF93 push r28 717 06ba DF93 push r29 718 /* prologue end (size=6) */ 719 06bc 7A01 movw r14,r20 720 06be 722F mov r23,r18 721 06c0 93E2 ldi r25,lo8(35) 722 06c2 9093 0000 sts SendeBuffer,r25 723 06c6 6093 0000 sts SendeBuffer+1,r22 724 06ca 8093 0000 sts SendeBuffer+2,r24 725 06ce 03E0 ldi r16,lo8(3) 726 06d0 10E0 ldi r17,hi8(3) 727 06d2 60E0 ldi r22,lo8(0) 728 06d4 A0E0 ldi r26,lo8(SendeBuffer+3) 729 06d6 B0E0 ldi r27,hi8(SendeBuffer+3) 730 06d8 00C0 rjmp .L96 731 .L97: 732 06da F701 movw r30,r14 733 06dc E60F add r30,r22 734 06de F11D adc r31,__zero_reg__ 735 06e0 9081 ld r25,Z 736 06e2 6F5F subi r22,lo8(-(1)) 737 06e4 7150 subi r23,lo8(-(-1)) 738 06e6 01F4 brne .L98 739 06e8 E0E0 ldi r30,lo8(0) 740 06ea 40E0 ldi r20,lo8(0) 741 06ec 00C0 rjmp .L100 742 .L98: 743 06ee F701 movw r30,r14 744 06f0 E60F add r30,r22 745 06f2 F11D adc r31,__zero_reg__ 746 06f4 4081 ld r20,Z 747 06f6 6F5F subi r22,lo8(-(1)) 748 06f8 7150 subi r23,lo8(-(-1)) 749 06fa 01F4 brne .L101 750 06fc E0E0 ldi r30,lo8(0) 751 06fe 00C0 rjmp .L100 752 .L101: 753 0700 F701 movw r30,r14 754 0702 E60F add r30,r22 755 0704 F11D adc r31,__zero_reg__ 756 0706 E081 ld r30,Z 757 0708 6F5F subi r22,lo8(-(1)) 758 070a 7150 subi r23,lo8(-(-1)) 759 .L100: 760 070c 892F mov r24,r25 761 070e 8695 lsr r24 762 0710 8695 lsr r24 763 0712 835C subi r24,lo8(-(61)) 764 0714 8C93 st X,r24 765 0716 5527 clr r21 766 0718 892F mov r24,r25 767 071a 9927 clr r25 768 071c 8370 andi r24,lo8(3) 769 071e 9070 andi r25,hi8(3) 770 0720 24E0 ldi r18,4 771 0722 880F 1: lsl r24 772 0724 991F rol r25 773 0726 2A95 dec r18 774 0728 01F4 brne 1b 775 072a 9A01 movw r18,r20 776 072c 94E0 ldi r25,4 777 072e 3695 1: lsr r19 778 0730 2795 ror r18 779 0732 9A95 dec r25 780 0734 01F4 brne 1b 781 0736 822B or r24,r18 782 0738 835C subi r24,lo8(-(61)) 783 073a ED01 movw r28,r26 784 073c 8983 std Y+1,r24 785 073e 4F70 andi r20,lo8(15) 786 0740 5070 andi r21,hi8(15) 787 0742 440F lsl r20 788 0744 551F rol r21 789 0746 440F lsl r20 790 0748 551F rol r21 791 074a 8E2F mov r24,r30 792 074c 8295 swap r24 793 074e 8695 lsr r24 794 0750 8695 lsr r24 795 0752 8370 andi r24,0x3 796 0754 842B or r24,r20 797 0756 835C subi r24,lo8(-(61)) 798 0758 8A83 std Y+2,r24 799 075a EF73 andi r30,lo8(63) 800 075c E35C subi r30,lo8(-(61)) 801 075e EB83 std Y+3,r30 802 0760 0C5F subi r16,lo8(-(4)) 803 0762 1F4F sbci r17,hi8(-(4)) 804 0764 1496 adiw r26,4 805 .L96: 806 0766 7723 tst r23 807 0768 01F0 breq .+2 808 076a 00C0 rjmp .L97 809 076c C801 movw r24,r16 810 076e 0E94 0000 call AddCRC 811 /* epilogue: frame size=0 */ 812 0772 DF91 pop r29 813 0774 CF91 pop r28 814 0776 1F91 pop r17 815 0778 0F91 pop r16 816 077a FF90 pop r15 817 077c EF90 pop r14 818 077e 0895 ret 819 /* epilogue end (size=7) */ 820 /* function SendOutData size 106 (93) */ 822 .global Decode64 824 Decode64: 825 /* prologue: frame size=0 */ 826 0780 1F93 push r17 827 0782 CF93 push r28 828 0784 DF93 push r29 829 /* prologue end (size=3) */ 830 0786 EC01 movw r28,r24 831 0788 70E0 ldi r23,lo8(0) 832 078a A22F mov r26,r18 833 078c BB27 clr r27 834 078e 1297 sbiw r26,2 835 0790 00C0 rjmp .L106 836 .L107: 837 0792 E42F mov r30,r20 838 0794 FF27 clr r31 839 0796 E050 subi r30,lo8(-(RxdBuffer)) 840 0798 F040 sbci r31,hi8(-(RxdBuffer)) 841 079a 3081 ld r19,Z 842 079c 4F5F subi r20,lo8(-(1)) 843 079e E42F mov r30,r20 844 07a0 FF27 clr r31 845 07a2 E050 subi r30,lo8(-(RxdBuffer)) 846 07a4 F040 sbci r31,hi8(-(RxdBuffer)) 847 07a6 5081 ld r21,Z 848 07a8 4F5F subi r20,lo8(-(1)) 849 07aa E42F mov r30,r20 850 07ac FF27 clr r31 851 07ae E050 subi r30,lo8(-(RxdBuffer)) 852 07b0 F040 sbci r31,hi8(-(RxdBuffer)) 853 07b2 1081 ld r17,Z 854 07b4 4F5F subi r20,lo8(-(1)) 855 07b6 E42F mov r30,r20 856 07b8 FF27 clr r31 857 07ba E050 subi r30,lo8(-(RxdBuffer)) 858 07bc F040 sbci r31,hi8(-(RxdBuffer)) 859 07be 2081 ld r18,Z 860 07c0 4F5F subi r20,lo8(-(1)) 861 07c2 842F mov r24,r20 862 07c4 9927 clr r25 863 07c6 A817 cp r26,r24 864 07c8 B907 cpc r27,r25 865 07ca 04F0 brlt .L112 866 07cc 5D53 subi r21,lo8(-(-61)) 867 07ce FE01 movw r30,r28 868 07d0 E70F add r30,r23 869 07d2 F11D adc r31,__zero_reg__ 870 07d4 3D53 subi r19,lo8(-(-61)) 871 07d6 330F lsl r19 872 07d8 330F lsl r19 873 07da 852F mov r24,r21 874 07dc 8295 swap r24 875 07de 8F70 andi r24,0x0f 876 07e0 382B or r19,r24 877 07e2 3083 st Z,r19 878 07e4 6130 cpi r22,lo8(1) 879 07e6 01F0 breq .L112 880 07e8 912F mov r25,r17 881 07ea 9D53 subi r25,lo8(-(-61)) 882 07ec 7F5F subi r23,lo8(-(1)) 883 07ee FE01 movw r30,r28 884 07f0 E70F add r30,r23 885 07f2 F11D adc r31,__zero_reg__ 886 07f4 7150 subi r23,lo8(-(-1)) 887 07f6 5295 swap r21 888 07f8 507F andi r21,0xf0 889 07fa 892F mov r24,r25 890 07fc 8695 lsr r24 891 07fe 8695 lsr r24 892 0800 582B or r21,r24 893 0802 5083 st Z,r21 894 0804 6350 subi r22,lo8(-(-3)) 895 0806 6F3F cpi r22,lo8(-1) 896 0808 01F0 breq .L112 897 080a 7E5F subi r23,lo8(-(2)) 898 080c FE01 movw r30,r28 899 080e E70F add r30,r23 900 0810 F11D adc r31,__zero_reg__ 901 0812 9295 swap r25 902 0814 990F lsl r25 903 0816 990F lsl r25 904 0818 907C andi r25,0xc0 905 081a 2D53 subi r18,lo8(-(-61)) 906 081c 922B or r25,r18 907 081e 9083 st Z,r25 908 0820 7F5F subi r23,lo8(-(1)) 909 .L106: 910 0822 6623 tst r22 911 0824 01F0 breq .+2 912 0826 00C0 rjmp .L107 913 .L112: 914 /* epilogue: frame size=0 */ 915 0828 DF91 pop r29 916 082a CF91 pop r28 917 082c 1F91 pop r17 918 082e 0895 ret 919 /* epilogue end (size=4) */ 920 /* function Decode64 size 88 (81) */ 922 .global uart_putchar 924 uart_putchar: 925 /* prologue: frame size=0 */ 926 0830 1F93 push r17 927 /* prologue end (size=1) */ 928 0832 182F mov r17,r24 929 0834 8A30 cpi r24,lo8(10) 930 0836 01F4 brne .L118 931 0838 8DE0 ldi r24,lo8(13) 932 083a 0E94 0000 call uart_putchar 933 .L118: 934 083e 8091 C000 lds r24,192 935 0842 85FF sbrs r24,5 936 0844 00C0 rjmp .L118 937 0846 1093 C600 sts 198,r17 938 084a 80E0 ldi r24,lo8(0) 939 084c 90E0 ldi r25,hi8(0) 940 /* epilogue: frame size=0 */ 941 084e 1F91 pop r17 942 0850 0895 ret 943 /* epilogue end (size=2) */ 944 /* function uart_putchar size 17 (14) */ 946 .global WriteProgramData 948 WriteProgramData: 949 /* prologue: frame size=0 */ 950 /* prologue end (size=0) */ 951 /* epilogue: frame size=0 */ 952 0852 0895 ret 953 /* epilogue end (size=1) */ 954 /* function WriteProgramData size 1 (0) */ 956 .global UART_Init 958 UART_Init: 959 /* prologue: frame size=0 */ 960 /* prologue end (size=0) */ 961 0854 E1EC ldi r30,lo8(193) 962 0856 F0E0 ldi r31,hi8(193) 963 0858 88E1 ldi r24,lo8(24) 964 085a 8083 st Z,r24 965 085c A0EC ldi r26,lo8(192) 966 085e B0E0 ldi r27,hi8(192) 967 0860 8C91 ld r24,X 968 0862 8260 ori r24,lo8(2) 969 0864 8C93 st X,r24 970 0866 8081 ld r24,Z 971 0868 8068 ori r24,lo8(-128) 972 086a 8083 st Z,r24 973 086c 8081 ld r24,Z 974 086e 8064 ori r24,lo8(64) 975 0870 8083 st Z,r24 976 0872 8AE2 ldi r24,lo8(42) 977 0874 8093 C400 sts 196,r24 978 0878 88EC ldi r24,lo8(200) 979 087a 90E0 ldi r25,hi8(200) 980 087c 0E94 0000 call SetDelay 981 0880 9093 0000 sts (Debug_Timer)+1,r25 982 0884 8093 0000 sts Debug_Timer,r24 983 0888 1092 0000 sts gpsState,__zero_reg__ 984 /* epilogue: frame size=0 */ 985 088c 0895 ret 986 /* epilogue end (size=1) */ 987 /* function UART_Init size 29 (28) */ 989 .global DatenUebertragung 991 DatenUebertragung: 992 /* prologue: frame size=0 */ 993 /* prologue end (size=0) */ 994 088e 8091 0000 lds r24,UebertragungAbgeschlossen 995 0892 8823 tst r24 996 0894 01F4 brne .+2 997 0896 00C0 rjmp .L142 998 0898 8091 0000 lds r24,DebugGetAnforderung 999 089c 8823 tst r24 1000 089e 01F0 breq .L128 1001 08a0 8091 0000 lds r24,UebertragungAbgeschlossen 1002 08a4 8823 tst r24 1003 08a6 01F0 breq .L128 1004 08a8 2BE0 ldi r18,lo8(11) 1005 08aa 40E0 ldi r20,lo8(DebugIn) 1006 08ac 50E0 ldi r21,hi8(DebugIn) 1007 08ae 6091 0000 lds r22,MeineSlaveAdresse 1008 08b2 87E4 ldi r24,lo8(71) 1009 08b4 0E94 0000 call SendOutData 1010 08b8 1092 0000 sts DebugGetAnforderung,__zero_reg__ 1011 .L128: 1012 08bc 8091 0000 lds r24,Debug_Timer 1013 08c0 9091 0000 lds r25,(Debug_Timer)+1 1014 08c4 0E94 0000 call CheckDelay 1015 08c8 8823 tst r24 1016 08ca 01F4 brne .L131 1017 08cc 8091 0000 lds r24,DebugDataAnforderung 1018 08d0 8823 tst r24 1019 08d2 01F0 breq .L133 1020 .L131: 1021 08d4 8091 0000 lds r24,UebertragungAbgeschlossen 1022 08d8 8823 tst r24 1023 08da 01F0 breq .L133 1024 08dc 22E3 ldi r18,lo8(50) 1025 08de 40E0 ldi r20,lo8(DebugOut) 1026 08e0 50E0 ldi r21,hi8(DebugOut) 1027 08e2 6091 0000 lds r22,MeineSlaveAdresse 1028 08e6 84E4 ldi r24,lo8(68) 1029 08e8 0E94 0000 call SendOutData 1030 08ec 1092 0000 sts DebugDataAnforderung,__zero_reg__ 1031 08f0 8AEF ldi r24,lo8(250) 1032 08f2 90E0 ldi r25,hi8(250) 1033 08f4 0E94 0000 call SetDelay 1034 08f8 9093 0000 sts (Debug_Timer)+1,r25 1035 08fc 8093 0000 sts Debug_Timer,r24 1036 .L133: 1037 0900 8091 0000 lds r24,DebugDisplayAnforderung 1038 0904 8823 tst r24 1039 0906 01F0 breq .L135 1040 0908 8091 0000 lds r24,UebertragungAbgeschlossen 1041 090c 8823 tst r24 1042 090e 01F0 breq .L135 1043 0910 0E94 0000 call Menu 1044 0914 1092 0000 sts DebugDisplayAnforderung,__zero_reg__ 1045 0918 8091 0000 lds r24,dis_zeile.2453 1046 091c 8F5F subi r24,lo8(-(1)) 1047 091e 8093 0000 sts dis_zeile.2453,r24 1048 0922 8430 cpi r24,lo8(4) 1049 0924 01F4 brne .L138 1050 0926 1092 0000 sts dis_zeile.2453,__zero_reg__ 1051 .L138: 1052 092a 8091 0000 lds r24,dis_zeile.2453 1053 092e 44E1 ldi r20,lo8(20) 1054 0930 849F mul r24,r20 1055 0932 A001 movw r20,r0 1056 0934 1124 clr r1 1057 0936 4050 subi r20,lo8(-(DisplayBuff)) 1058 0938 5040 sbci r21,hi8(-(DisplayBuff)) 1059 093a 24E1 ldi r18,lo8(20) 1060 093c 60E0 ldi r22,lo8(0) 1061 093e 805D subi r24,lo8(-(48)) 1062 0940 0E94 0000 call SendOutData 1063 .L135: 1064 0944 8091 0000 lds r24,GetVersionAnforderung 1065 0948 8823 tst r24 1066 094a 01F0 breq .L142 1067 094c 8091 0000 lds r24,UebertragungAbgeschlossen 1068 0950 8823 tst r24 1069 0952 01F0 breq .L142 1070 0954 2AE0 ldi r18,lo8(10) 1071 0956 40E0 ldi r20,lo8(VersionInfo) 1072 0958 50E0 ldi r21,hi8(VersionInfo) 1073 095a 6091 0000 lds r22,MeineSlaveAdresse 1074 095e 86E5 ldi r24,lo8(86) 1075 0960 0E94 0000 call SendOutData 1076 0964 1092 0000 sts GetVersionAnforderung,__zero_reg__ 1077 .L142: 1078 0968 0895 ret 1079 /* epilogue: frame size=0 */ 1080 /* epilogue: noreturn */ 1081 /* epilogue end (size=0) */ 1082 /* function DatenUebertragung size 110 (110) */ 1084 .global BearbeiteRxDaten 1086 BearbeiteRxDaten: 1087 /* prologue: frame size=2 */ 1088 096a 1F93 push r17 1089 096c CF93 push r28 1090 096e DF93 push r29 1091 0970 CDB7 in r28,__SP_L__ 1092 0972 DEB7 in r29,__SP_H__ 1093 0974 2297 sbiw r28,2 1094 0976 0FB6 in __tmp_reg__,__SREG__ 1095 0978 F894 cli 1096 097a DEBF out __SP_H__,r29 1097 097c 0FBE out __SREG__,__tmp_reg__ 1098 097e CDBF out __SP_L__,r28 1099 /* prologue end (size=11) */ 1100 0980 8091 0000 lds r24,NeuerDatensatzEmpfangen 1101 0984 8823 tst r24 1102 0986 01F4 brne .+2 1103 0988 00C0 rjmp .L159 1104 098a 8FEF ldi r24,lo8(-1) 1105 098c 8093 0000 sts PcZugriff,r24 1106 0990 8091 0000 lds r24,RxdBuffer+2 1107 0994 8137 cpi r24,lo8(113) 1108 0996 00F4 brsh .L154 1109 0998 8C36 cpi r24,lo8(108) 1110 099a 00F0 brlo .+2 1111 099c 00C0 rjmp .L150 1112 099e 8736 cpi r24,lo8(103) 1113 09a0 01F4 brne .+2 1114 09a2 00C0 rjmp .L148 1115 09a4 8836 cpi r24,lo8(104) 1116 09a6 01F0 breq .L149 1117 09a8 8336 cpi r24,lo8(99) 1118 09aa 01F0 breq .+2 1119 09ac 00C0 rjmp .L146 1120 09ae 00C0 rjmp .L147 1121 .L154: 1122 09b0 8437 cpi r24,lo8(116) 1123 09b2 01F0 breq .L152 1124 09b4 8637 cpi r24,lo8(118) 1125 09b6 01F0 breq .L153 1126 09b8 8137 cpi r24,lo8(113) 1127 09ba 01F0 breq .+2 1128 09bc 00C0 rjmp .L146 1129 09be 00C0 rjmp .L151 1130 .L147: 1131 09c0 2091 0000 lds r18,AnzahlEmpfangsBytes 1132 09c4 43E0 ldi r20,lo8(3) 1133 09c6 6BE0 ldi r22,lo8(11) 1134 09c8 80E0 ldi r24,lo8(DebugIn) 1135 09ca 90E0 ldi r25,hi8(DebugIn) 1136 09cc 0E94 0000 call Decode64 1137 09d0 8091 0000 lds r24,RemoteTasten 1138 09d4 9091 0000 lds r25,DebugIn+2 1139 09d8 892B or r24,r25 1140 09da 8093 0000 sts RemoteTasten,r24 1141 09de 81E0 ldi r24,lo8(1) 1142 09e0 8093 0000 sts DebugDataAnforderung,r24 1143 09e4 00C0 rjmp .L146 1144 .L149: 1145 09e6 2091 0000 lds r18,AnzahlEmpfangsBytes 1146 09ea 43E0 ldi r20,lo8(3) 1147 09ec 62E0 ldi r22,lo8(2) 1148 09ee CE01 movw r24,r28 1149 09f0 0196 adiw r24,1 1150 09f2 0E94 0000 call Decode64 1151 09f6 8091 0000 lds r24,RemoteTasten 1152 09fa 9981 ldd r25,Y+1 1153 09fc 892B or r24,r25 1154 09fe 8093 0000 sts RemoteTasten,r24 1155 0a02 81E0 ldi r24,lo8(1) 1156 0a04 8093 0000 sts DebugDisplayAnforderung,r24 1157 0a08 00C0 rjmp .L146 1158 .L152: 1159 0a0a 2091 0000 lds r18,AnzahlEmpfangsBytes 1160 0a0e 43E0 ldi r20,lo8(3) 1161 0a10 64E0 ldi r22,lo8(4) 1162 0a12 80E0 ldi r24,lo8(MotorTest) 1163 0a14 90E0 ldi r25,hi8(MotorTest) 1164 0a16 0E94 0000 call Decode64 1165 0a1a 00C0 rjmp .L146 1166 .L153: 1167 0a1c 81E0 ldi r24,lo8(1) 1168 0a1e 8093 0000 sts GetVersionAnforderung,r24 1169 0a22 00C0 rjmp .L146 1170 .L148: 1171 0a24 81E0 ldi r24,lo8(1) 1172 0a26 8093 0000 sts DebugGetAnforderung,r24 1173 0a2a 00C0 rjmp .L146 1174 .L151: 1175 0a2c 2091 0000 lds r18,AnzahlEmpfangsBytes 1176 0a30 43E0 ldi r20,lo8(3) 1177 0a32 62E0 ldi r22,lo8(2) 1178 0a34 CE01 movw r24,r28 1179 0a36 0196 adiw r24,1 1180 0a38 0E94 0000 call Decode64 1181 0a3c 8981 ldd r24,Y+1 1182 0a3e 8F3F cpi r24,lo8(-1) 1183 0a40 01F0 breq .L155 1184 0a42 8630 cpi r24,lo8(6) 1185 0a44 00F0 brlo .L157 1186 0a46 85E0 ldi r24,lo8(5) 1187 0a48 8983 std Y+1,r24 1188 .L157: 1189 0a4a 4AE3 ldi r20,lo8(58) 1190 0a4c 60E0 ldi r22,lo8(EE_Parameter) 1191 0a4e 70E0 ldi r23,hi8(EE_Parameter) 1192 0a50 8981 ldd r24,Y+1 1193 0a52 0E94 0000 call ReadParameterSet 1194 0a56 8981 ldd r24,Y+1 1195 0a58 2AE3 ldi r18,lo8(58) 1196 0a5a 40E0 ldi r20,lo8(EE_Parameter) 1197 0a5c 50E0 ldi r21,hi8(EE_Parameter) 1198 0a5e 6091 0000 lds r22,MeineSlaveAdresse 1199 0a62 00C0 rjmp .L160 1200 .L155: 1201 0a64 1091 0000 lds r17,MeineSlaveAdresse 1202 0a68 0E94 0000 call GetActiveParamSetNumber 1203 0a6c 2AE3 ldi r18,lo8(58) 1204 0a6e 40E0 ldi r20,lo8(EE_Parameter) 1205 0a70 50E0 ldi r21,hi8(EE_Parameter) 1206 0a72 612F mov r22,r17 1207 .L160: 1208 0a74 855B subi r24,lo8(-(75)) 1209 0a76 0E94 0000 call SendOutData 1210 0a7a 00C0 rjmp .L146 1211 .L150: 1212 0a7c 2091 0000 lds r18,AnzahlEmpfangsBytes 1213 0a80 43E0 ldi r20,lo8(3) 1214 0a82 6AE3 ldi r22,lo8(58) 1215 0a84 80E0 ldi r24,lo8(EE_Parameter) 1216 0a86 90E0 ldi r25,hi8(EE_Parameter) 1217 0a88 0E94 0000 call Decode64 1218 0a8c 8091 0000 lds r24,RxdBuffer+2 1219 0a90 4AE3 ldi r20,lo8(58) 1220 0a92 60E0 ldi r22,lo8(EE_Parameter) 1221 0a94 70E0 ldi r23,hi8(EE_Parameter) 1222 0a96 8B56 subi r24,lo8(-(-107)) 1223 0a98 0E94 0000 call WriteParameterSet 1224 0a9c 8091 0000 lds r24,RxdBuffer+2 1225 0aa0 8B56 subi r24,lo8(-(-107)) 1226 0aa2 A0E0 ldi r26,lo8(EEPromArray+2) 1227 0aa4 B0E0 ldi r27,hi8(EEPromArray+2) 1228 /* #APP */ 1229 0aa6 082E mov __tmp_reg__,r24 1230 0aa8 0E94 0000 call __eeprom_write_byte_1F2021 1231 /* #NOAPP */ 1232 0aac 0E94 0000 call GetActiveParamSetNumber 1233 0ab0 0E94 0000 call Piep 1234 .L146: 1235 0ab4 1092 0000 sts NeuerDatensatzEmpfangen,__zero_reg__ 1236 .L159: 1237 /* epilogue: frame size=2 */ 1238 0ab8 2296 adiw r28,2 1239 0aba 0FB6 in __tmp_reg__,__SREG__ 1240 0abc F894 cli 1241 0abe DEBF out __SP_H__,r29 1242 0ac0 0FBE out __SREG__,__tmp_reg__ 1243 0ac2 CDBF out __SP_L__,r28 1244 0ac4 DF91 pop r29 1245 0ac6 CF91 pop r28 1246 0ac8 1F91 pop r17 1247 0aca 0895 ret 1248 /* epilogue end (size=10) */ 1249 /* function BearbeiteRxDaten size 178 (157) */ 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 PcZugriff 1320 .data 1323 PcZugriff: 1324 0001 64 .byte 100 1325 .global MotorTest 1326 .global MotorTest 1327 .section .bss 1330 MotorTest: 1331 000a 0000 0000 .skip 4,0 1332 .lcomm dis_zeile.2453,1 1333 .lcomm UartState.2131,1 1334 .lcomm buf_ptr.2130,1 1335 .lcomm crc2.2129,1 1336 .lcomm crc1.2128,1 1337 .lcomm crc.2127,2 1338 .lcomm ptr.2090,2 1339 .lcomm gpsState,1 1340 .comm DiffNick,2,1 1341 .comm DiffRoll,2,1 1342 .comm SenderOkay,1,1 1343 .comm CosinusNickWinkel,1,1 1344 .comm CosinusRollWinkel,1,1 1345 .comm durchschnitt_northing,4,1 1346 .comm durchschnitt_easting,4,1 1347 .comm P_GPS_Verstaerkung,2,1 1348 .comm D_GPS_Verstaerkung,2,1 1349 .comm SendeBuffer,150,1 1350 .comm RxdBuffer,150,1 1351 .comm MeineSlaveAdresse,1,1 1352 .comm Debug_Timer,2,1 1353 .comm DebugOut,50,1 1354 .comm actualPos,47,1 1355 .comm DebugIn,11,1 1356 .comm VersionInfo,10,1 1357 .comm RemoteTasten,1,1 1358 .comm Timeout,1,1 1359 .comm IntegralNick,4,1 1360 .comm IntegralNick2,4,1 1361 .comm IntegralRoll,4,1 1362 .comm IntegralRoll2,4,1 1363 .comm Mess_IntegralNick,4,1 1364 .comm Mess_IntegralNick2,4,1 1365 .comm Mess_IntegralRoll,4,1 1366 .comm Mess_IntegralRoll2,4,1 1367 .comm Integral_Gier,4,1 1368 .comm Mess_Integral_Gier,4,1 1369 .comm h,1,1 1370 .comm m,1,1 1371 .comm s,1,1 1372 .comm Motor_Vorne,1,1 1373 .comm Motor_Hinten,1,1 1374 .comm Motor_Rechts,1,1 1375 .comm Motor_Links,1,1 1376 .comm Count,1,1 1377 .comm MotorWert,5,1 1378 .comm NMEABuffer,150,1 1379 .comm navStatus,17,1 1380 .comm navPosECEF,21,1 1381 .comm navVelECEF,21,1 1382 .comm navPosUtm,19,1 1383 .comm navVelNed,37,1 1384 .comm ubxP,2,1 1385 .comm ubxEp,2,1 1386 .comm ubxSp,2,1 1387 .comm CK_A,1,1 1388 .comm CK_B,1,1 1389 .comm msgLen,2,1 1390 .comm msgID,1,1 1391 .comm ignorePacket,1,1 1392 .comm rollOffset,4,1 1393 .comm nickOffset,4,1 1394 /* File "uart.c": code 1393 = 0x0571 (1290), prologues 49, epilogues 54 */ DEFINED SYMBOLS *ABS*:00000000 uart.c C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:3 *ABS*:0000003f __SREG__ C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:4 *ABS*:0000003e __SP_H__ C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:5 *ABS*:0000003d __SP_L__ C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:6 *ABS*:00000000 __tmp_reg__ C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:7 *ABS*:00000001 __zero_reg__ C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:13 .text:00000000 __vector_22 C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1298 .data:00000000 UebertragungAbgeschlossen C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1337 .bss:00000015 ptr.2090 *COM*:00000096 SendeBuffer C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:69 .text:0000006c GPSscanData *COM*:00000015 navPosECEF *COM*:0000002f actualPos *COM*:00000011 navStatus *COM*:00000015 navVelECEF *COM*:00000013 navPosUtm *COM*:00000025 navVelNed C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:200 .text:0000021e __vector_20 C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1280 .bss:00000004 SioTmp C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1338 .bss:00000017 gpsState *COM*:00000001 msgID *COM*:00000001 CK_A *COM*:00000001 CK_B *COM*:00000002 ubxP *COM*:00000002 ubxEp *COM*:00000002 ubxSp *COM*:00000001 ignorePacket *COM*:00000002 msgLen C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1333 .bss:00000010 buf_ptr.2130 C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1332 .bss:0000000f UartState.2131 *COM*:00000096 RxdBuffer C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1336 .bss:00000013 crc.2127 C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1335 .bss:00000012 crc1.2128 C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1334 .bss:00000011 crc2.2129 C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1305 .bss:00000007 CntCrcError C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1286 .bss:00000005 NeuerDatensatzEmpfangen C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1311 .bss:00000008 AnzahlEmpfangsBytes C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:656 .text:00000654 AddCRC C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:710 .text:000006b0 SendOutData C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:824 .text:00000780 Decode64 C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:924 .text:00000830 uart_putchar C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:948 .text:00000852 WriteProgramData C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:958 .text:00000854 UART_Init *COM*:00000002 Debug_Timer C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:991 .text:0000088e DatenUebertragung C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1256 .bss:00000000 DebugGetAnforderung *COM*:0000000b DebugIn *COM*:00000001 MeineSlaveAdresse C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1268 .bss:00000002 DebugDataAnforderung *COM*:00000032 DebugOut C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1262 .bss:00000001 DebugDisplayAnforderung .bss:0000000e dis_zeile.2453 C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1274 .bss:00000003 GetVersionAnforderung *COM*:0000000a VersionInfo C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1086 .text:0000096a BearbeiteRxDaten C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1323 .data:00000001 PcZugriff *COM*:00000001 RemoteTasten C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1330 .bss:0000000a MotorTest C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1292 .bss:00000006 NeueKoordinateEmpfangen C:\DOKUME~1\none\LOKALE~1\Temp/ccDJkC34.s:1317 .bss:00000009 PC_DebugTimeout *COM*:00000002 DiffNick *COM*:00000002 DiffRoll *COM*:00000001 SenderOkay *COM*:00000001 CosinusNickWinkel *COM*:00000001 CosinusRollWinkel *COM*:00000004 durchschnitt_northing *COM*:00000004 durchschnitt_easting *COM*:00000002 P_GPS_Verstaerkung *COM*:00000002 D_GPS_Verstaerkung *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*:00000096 NMEABuffer *COM*:00000004 rollOffset *COM*:00000004 nickOffset UNDEFINED SYMBOLS __do_copy_data __do_clear_bss SetDelay CheckDelay Menu DisplayBuff EE_Parameter ReadParameterSet GetActiveParamSetNumber WriteParameterSet EEPromArray __eeprom_write_byte_1F2021 Piep