1 .file "input.cpp" 2 __SREG__ = 0x3f 3 __SP_H__ = 0x3e 4 __SP_L__ = 0x3d 5 __tmp_reg__ = 0 6 __zero_reg__ = 1 7 .global __do_copy_data 8 .global __do_clear_bss 16 .Ltext0: 17 .global _ZN5Input4InitEv 19 _ZN5Input4InitEv: 20 .LFB3: 21 .LM1: 22 /* prologue: function */ 23 /* frame size = 0 */ 24 .LM2: 25 0000 1ABA out 58-0x20,__zero_reg__ 26 /* epilogue start */ 27 .LM3: 28 0002 0895 ret 29 .LFE3: 31 .global _ZN5Input13CheckKeyPressEPvS0_ 33 _ZN5Input13CheckKeyPressEPvS0_: 34 .LFB4: 35 .LM4: 36 .LVL0: 37 0004 EF92 push r14 38 0006 0F93 push r16 39 0008 1F93 push r17 40 000a CF93 push r28 41 000c DF93 push r29 42 /* prologue: function */ 43 /* frame size = 0 */ 44 .LM5: 45 000e A0E0 ldi r26,lo8(_ZN5Input8keyStateE) 46 0010 B0E0 ldi r27,hi8(_ZN5Input8keyStateE) 47 0012 C0E0 ldi r28,lo8(_ZN5Input10key_eventsE) 48 0014 D0E0 ldi r29,hi8(_ZN5Input10key_eventsE) 49 0016 50E0 ldi r21,lo8(0) 50 .LVL1: 51 0018 20E0 ldi r18,lo8(0) 52 001a 30E0 ldi r19,hi8(0) 53 .LBB2: 54 .LM6: 55 001c 61E0 ldi r22,lo8(1) 56 .LVL2: 57 .L6: 58 .LM7: 59 001e 4C91 ld r20,X 60 0020 F901 movw r30,r18 61 0022 E050 subi r30,lo8(-(_ZN5Input9lastStateE)) 62 0024 F040 sbci r31,hi8(-(_ZN5Input9lastStateE)) 63 0026 4083 st Z,r20 64 .LM8: 65 0028 1882 st Y,__zero_reg__ 66 .LM9: 67 002a 89B3 in r24,57-0x20 68 .LVL3: 69 002c 90E0 ldi r25,lo8(0) 70 002e 022E mov r0,r18 71 0030 00C0 rjmp 2f 72 0032 9595 1: asr r25 73 0034 8795 ror r24 74 0036 0A94 2: dec r0 75 0038 02F4 brpl 1b 76 003a 80FF sbrs r24,0 77 003c 00C0 rjmp .L4 78 .LM10: 79 003e 6C93 st X,r22 80 0040 00C0 rjmp .L5 81 .L4: 82 .LM11: 83 0042 1C92 st X,__zero_reg__ 84 .LM12: 85 0044 4130 cpi r20,lo8(1) 86 0046 01F4 brne .L5 87 .LM13: 88 0048 4883 st Y,r20 89 004a 51E0 ldi r21,lo8(1) 90 .LVL4: 91 .L5: 92 004c 2F5F subi r18,lo8(-(1)) 93 004e 3F4F sbci r19,hi8(-(1)) 94 0050 1196 adiw r26,1 95 0052 2196 adiw r28,1 96 .LM14: 97 0054 2530 cpi r18,5 98 0056 3105 cpc r19,__zero_reg__ 99 0058 01F4 brne .L6 100 .LVL5: 101 .LM15: 102 005a 5130 cpi r21,lo8(1) 103 005c 01F4 brne .L8 104 .LVL6: 105 .LM16: 106 005e EE24 clr r14 107 0060 00E0 ldi r16,lo8(0) 108 0062 10E0 ldi r17,hi8(0) 109 0064 20E0 ldi r18,lo8(0) 110 0066 40E0 ldi r20,lo8(0) 111 0068 50E0 ldi r21,hi8(0) 112 006a 60E0 ldi r22,lo8(0) 113 006c 70E0 ldi r23,hi8(0) 114 006e 80E0 ldi r24,lo8(pm(_ZN5Input11ProcessKeysEPvS0_)) 115 0070 90E0 ldi r25,hi8(pm(_ZN5Input11ProcessKeysEPvS0_)) 116 0072 0E94 0000 call _ZN11TaskManager7AddTaskEPFvPvS0_ES0_S0_NS_9TASK_TYPEEjNS_8PRIORITYE 117 .LVL7: 118 .L8: 119 /* epilogue start */ 120 .LBE2: 121 .LM17: 122 0076 DF91 pop r29 123 0078 CF91 pop r28 124 007a 1F91 pop r17 125 007c 0F91 pop r16 126 007e EF90 pop r14 127 0080 0895 ret 128 .LFE4: 130 .global _ZN5Input11ProcessKeysEPvS0_ 132 _ZN5Input11ProcessKeysEPvS0_: 133 .LFB5: 134 .LM18: 135 .LVL8: 136 0082 EF92 push r14 137 0084 0F93 push r16 138 0086 1F93 push r17 139 0088 DF93 push r29 140 008a CF93 push r28 141 008c 00D0 rcall . 142 008e 0F92 push __tmp_reg__ 143 0090 CDB7 in r28,__SP_L__ 144 0092 DEB7 in r29,__SP_H__ 145 /* prologue: function */ 146 /* frame size = 3 */ 147 .LBB3: 148 .LM19: 149 0094 8091 0000 lds r24,_ZN5Input10key_eventsE+2 150 .LVL9: 151 0098 8130 cpi r24,lo8(1) 152 009a 01F0 breq .+2 153 009c 00C0 rjmp .L11 154 .LM20: 155 009e 8091 0000 lds r24,_ZN4Menu8cur_menuE 156 00a2 8330 cpi r24,lo8(3) 157 00a4 01F4 brne .L12 158 .LM21: 159 00a6 8091 0000 lds r24,_ZN6Coffee19motor_filter_statusE 160 .LVL10: 161 00aa 8F5F subi r24,lo8(-(1)) 162 00ac 8983 std Y+1,r24 163 .LM22: 164 00ae 8530 cpi r24,lo8(5) 165 00b0 00F0 brlo .L13 166 .LM23: 167 00b2 1982 std Y+1,__zero_reg__ 168 .LVL11: 169 .L13: 170 .LM24: 171 00b4 81E0 ldi r24,lo8(1) 172 00b6 8A83 std Y+2,r24 173 .LVL12: 174 00b8 00C0 rjmp .L36 175 .LVL13: 176 .L12: 177 .LM25: 178 00ba 8430 cpi r24,lo8(4) 179 00bc 01F4 brne .L15 180 .LM26: 181 00be 8091 0000 lds r24,_ZN6Coffee16motor_arm_statusE 182 .LVL14: 183 00c2 8F5F subi r24,lo8(-(1)) 184 00c4 8983 std Y+1,r24 185 .LM27: 186 00c6 8530 cpi r24,lo8(5) 187 00c8 00F0 brlo .L16 188 .LM28: 189 00ca 1982 std Y+1,__zero_reg__ 190 .LVL15: 191 .L16: 192 .LM29: 193 00cc 1A82 std Y+2,__zero_reg__ 194 .LVL16: 195 .L36: 196 .LM30: 197 00ce BE01 movw r22,r28 198 .LVL17: 199 00d0 6F5F subi r22,lo8(-(1)) 200 00d2 7F4F sbci r23,hi8(-(1)) 201 00d4 CE01 movw r24,r28 202 00d6 0296 adiw r24,2 203 00d8 0E94 0000 call _ZN6Coffee8RunMotorEPvS0_ 204 00dc 00C0 rjmp .L14 205 .LVL18: 206 .L15: 207 .LM31: 208 00de 8823 tst r24 209 00e0 01F4 brne .L17 210 .LM32: 211 00e2 EE24 clr r14 212 00e4 00E0 ldi r16,lo8(0) 213 00e6 10E0 ldi r17,hi8(0) 214 00e8 20E0 ldi r18,lo8(0) 215 00ea 40E0 ldi r20,lo8(0) 216 00ec 50E0 ldi r21,hi8(0) 217 00ee 60E0 ldi r22,lo8(0) 218 00f0 70E0 ldi r23,hi8(0) 219 .LVL19: 220 00f2 80E0 ldi r24,lo8(pm(_ZN6Coffee8ResetWEBEPvS0_)) 221 00f4 90E0 ldi r25,hi8(pm(_ZN6Coffee8ResetWEBEPvS0_)) 222 00f6 0E94 0000 call _ZN11TaskManager7AddTaskEPFvPvS0_ES0_S0_NS_9TASK_TYPEEjNS_8PRIORITYE 223 00fa 00C0 rjmp .L14 224 .LVL20: 225 .L17: 226 .LM33: 227 00fc 8530 cpi r24,lo8(5) 228 00fe 01F4 brne .L18 229 .LBB4: 230 .LM34: 231 0100 80E4 ldi r24,lo8(64) 232 0102 8B83 std Y+3,r24 233 .LVL21: 234 .LM35: 235 0104 41E0 ldi r20,lo8(1) 236 0106 BE01 movw r22,r28 237 .LVL22: 238 0108 6D5F subi r22,lo8(-(3)) 239 010a 7F4F sbci r23,hi8(-(3)) 240 010c 88E0 ldi r24,lo8(8) 241 010e 00C0 rjmp .L40 242 .LVL23: 243 .L18: 244 .LBE4: 245 .LM36: 246 0110 8630 cpi r24,lo8(6) 247 0112 01F4 brne .L19 248 .LBB5: 249 .LM37: 250 0114 8FE0 ldi r24,lo8(15) 251 0116 00C0 rjmp .L39 252 .L19: 253 .LBE5: 254 .LM38: 255 0118 8730 cpi r24,lo8(7) 256 011a 01F0 breq .+2 257 011c 00C0 rjmp .L14 258 .LBB6: 259 .LM39: 260 011e 80EF ldi r24,lo8(-16) 261 .L39: 262 0120 8B83 std Y+3,r24 263 .LM40: 264 0122 41E0 ldi r20,lo8(1) 265 0124 BE01 movw r22,r28 266 .LVL24: 267 0126 6D5F subi r22,lo8(-(3)) 268 0128 7F4F sbci r23,hi8(-(3)) 269 012a 8CE0 ldi r24,lo8(12) 270 .LVL25: 271 .L40: 272 012c 0E94 0000 call _ZN3TWI4SendEhPhh 273 0130 00C0 rjmp .L14 274 .LVL26: 275 .L11: 276 .LBE6: 277 .LM41: 278 0132 8091 0000 lds r24,_ZN5Input10key_eventsE+1 279 0136 8130 cpi r24,lo8(1) 280 0138 01F4 brne .L20 281 .LM42: 282 013a 8091 0000 lds r24,_ZN4Menu8cur_menuE 283 013e 8823 tst r24 284 0140 01F4 brne .L21 285 .LM43: 286 0142 89E0 ldi r24,lo8(9) 287 0144 00C0 rjmp .L37 288 .L21: 289 .LM44: 290 0146 8150 subi r24,lo8(-(-1)) 291 .L37: 292 0148 8093 0000 sts _ZN4Menu8cur_menuE,r24 293 014c 00C0 rjmp .L14 294 .L20: 295 .LM45: 296 014e 8091 0000 lds r24,_ZN5Input10key_eventsE+4 297 0152 8130 cpi r24,lo8(1) 298 0154 01F4 brne .L22 299 .LM46: 300 0156 8091 0000 lds r24,_ZN4Menu8cur_menuE 301 015a 8930 cpi r24,lo8(9) 302 015c 01F4 brne .L23 303 .LM47: 304 015e 1092 0000 sts _ZN4Menu8cur_menuE,__zero_reg__ 305 0162 00C0 rjmp .L14 306 .L23: 307 .LM48: 308 0164 8F5F subi r24,lo8(-(1)) 309 0166 00C0 rjmp .L37 310 .L22: 311 .LM49: 312 0168 8091 0000 lds r24,_ZN5Input10key_eventsE 313 016c 8130 cpi r24,lo8(1) 314 016e 01F4 brne .L24 315 .LM50: 316 0170 8091 0000 lds r24,_ZN4Menu8cur_menuE 317 0174 8630 cpi r24,lo8(6) 318 0176 01F4 brne .L25 319 .LM51: 320 0178 8091 0000 lds r24,_ZN6Coffee13cur_vacuum_pwE 321 017c 8B5F subi r24,lo8(-(5)) 322 017e 8093 0000 sts _ZN6Coffee13cur_vacuum_pwE,r24 323 .LM52: 324 0182 8436 cpi r24,lo8(100) 325 0184 00F0 brlo .L31 326 .LM53: 327 0186 84E6 ldi r24,lo8(100) 328 0188 8093 0000 sts _ZN6Coffee13cur_vacuum_pwE,r24 329 018c 00C0 rjmp .L31 330 .L25: 331 .LM54: 332 018e 8730 cpi r24,lo8(7) 333 0190 01F4 brne .L27 334 .LM55: 335 0192 8091 0000 lds r24,_ZN6Coffee13cur_vacuum_pwE+1 336 0196 8B5F subi r24,lo8(-(5)) 337 0198 8093 0000 sts _ZN6Coffee13cur_vacuum_pwE+1,r24 338 .LM56: 339 019c 8536 cpi r24,lo8(101) 340 019e 00F0 brlo .L33 341 .LM57: 342 01a0 84E6 ldi r24,lo8(100) 343 01a2 8093 0000 sts _ZN6Coffee13cur_vacuum_pwE+1,r24 344 01a6 00C0 rjmp .L33 345 .L27: 346 .LM58: 347 01a8 8830 cpi r24,lo8(8) 348 01aa 01F0 breq .+2 349 01ac 00C0 rjmp .L14 350 .LM59: 351 01ae 8091 0000 lds r24,_ZN6Coffee9servo_posE 352 01b2 9091 0000 lds r25,(_ZN6Coffee9servo_posE)+1 353 .LVL27: 354 01b6 C296 adiw r24,50 355 01b8 9093 0000 sts (_ZN6Coffee9servo_posE)+1,r25 356 01bc 8093 0000 sts _ZN6Coffee9servo_posE,r24 357 .LM60: 358 01c0 855A subi r24,lo8(1701) 359 01c2 9640 sbci r25,hi8(1701) 360 01c4 00F4 brsh .+2 361 01c6 00C0 rjmp .L34 362 .LM61: 363 01c8 84EA ldi r24,lo8(1700) 364 01ca 96E0 ldi r25,hi8(1700) 365 .LVL28: 366 01cc 00C0 rjmp .L41 367 .L24: 368 .LM62: 369 01ce 8091 0000 lds r24,_ZN5Input10key_eventsE+3 370 01d2 8130 cpi r24,lo8(1) 371 01d4 01F0 breq .+2 372 01d6 00C0 rjmp .L14 373 .LM63: 374 01d8 8091 0000 lds r24,_ZN4Menu8cur_menuE 375 01dc 8630 cpi r24,lo8(6) 376 01de 01F4 brne .L30 377 .LM64: 378 01e0 8091 0000 lds r24,_ZN6Coffee13cur_vacuum_pwE 379 01e4 8550 subi r24,lo8(-(-5)) 380 01e6 8093 0000 sts _ZN6Coffee13cur_vacuum_pwE,r24 381 .LM65: 382 01ea 8436 cpi r24,lo8(100) 383 01ec 00F0 brlo .L31 384 .LM66: 385 01ee 1092 0000 sts _ZN6Coffee13cur_vacuum_pwE,__zero_reg__ 386 .L31: 387 .LM67: 388 01f2 1A82 std Y+2,__zero_reg__ 389 .LVL29: 390 .LM68: 391 01f4 60E0 ldi r22,lo8(_ZN6Coffee13cur_vacuum_pwE) 392 01f6 70E0 ldi r23,hi8(_ZN6Coffee13cur_vacuum_pwE) 393 .LVL30: 394 01f8 00C0 rjmp .L38 395 .LVL31: 396 .L30: 397 .LM69: 398 01fa 8730 cpi r24,lo8(7) 399 01fc 01F4 brne .L32 400 .LM70: 401 01fe 8091 0000 lds r24,_ZN6Coffee13cur_vacuum_pwE+1 402 0202 8550 subi r24,lo8(-(-5)) 403 0204 8093 0000 sts _ZN6Coffee13cur_vacuum_pwE+1,r24 404 .LM71: 405 0208 8436 cpi r24,lo8(100) 406 020a 00F0 brlo .L33 407 .LM72: 408 020c 1092 0000 sts _ZN6Coffee13cur_vacuum_pwE+1,__zero_reg__ 409 .L33: 410 .LM73: 411 0210 81E0 ldi r24,lo8(1) 412 0212 8A83 std Y+2,r24 413 .LVL32: 414 .LM74: 415 0214 60E0 ldi r22,lo8(_ZN6Coffee13cur_vacuum_pwE+1) 416 0216 70E0 ldi r23,hi8(_ZN6Coffee13cur_vacuum_pwE+1) 417 .LVL33: 418 .L38: 419 0218 CE01 movw r24,r28 420 021a 0296 adiw r24,2 421 021c 0E94 0000 call _ZN6Coffee9SetVacuumEPvS0_ 422 0220 00C0 rjmp .L14 423 .LVL34: 424 .L32: 425 .LM75: 426 0222 8830 cpi r24,lo8(8) 427 0224 01F4 brne .L14 428 .LM76: 429 0226 8091 0000 lds r24,_ZN6Coffee9servo_posE 430 022a 9091 0000 lds r25,(_ZN6Coffee9servo_posE)+1 431 .LVL35: 432 022e C297 sbiw r24,50 433 0230 9093 0000 sts (_ZN6Coffee9servo_posE)+1,r25 434 0234 8093 0000 sts _ZN6Coffee9servo_posE,r24 435 .LM77: 436 0238 8C5B subi r24,lo8(700) 437 023a 9240 sbci r25,hi8(700) 438 023c 00F4 brsh .L34 439 .LM78: 440 023e 8CEB ldi r24,lo8(700) 441 0240 92E0 ldi r25,hi8(700) 442 .LVL36: 443 .L41: 444 0242 9093 0000 sts (_ZN6Coffee9servo_posE)+1,r25 445 0246 8093 0000 sts _ZN6Coffee9servo_posE,r24 446 .LVL37: 447 .L34: 448 .LM79: 449 024a 83E0 ldi r24,lo8(3) 450 .LVL38: 451 024c 8A83 std Y+2,r24 452 .LVL39: 453 .LM80: 454 024e 60E0 ldi r22,lo8(_ZN6Coffee9servo_posE) 455 0250 70E0 ldi r23,hi8(_ZN6Coffee9servo_posE) 456 .LVL40: 457 0252 CE01 movw r24,r28 458 0254 0296 adiw r24,2 459 0256 0E94 0000 call _ZN6Coffee8SetServoEPvS0_ 460 .LVL41: 461 .L14: 462 .LM81: 463 025a 82E3 ldi r24,lo8(50) 464 025c E82E mov r14,r24 465 025e 00E0 ldi r16,lo8(0) 466 0260 10E0 ldi r17,hi8(0) 467 0262 20E0 ldi r18,lo8(0) 468 0264 40E0 ldi r20,lo8(0) 469 0266 50E0 ldi r21,hi8(0) 470 0268 60E0 ldi r22,lo8(0) 471 026a 70E0 ldi r23,hi8(0) 472 .LVL42: 473 026c 80E0 ldi r24,lo8(pm(_ZN4Menu8DrawMenuEPvS0_)) 474 026e 90E0 ldi r25,hi8(pm(_ZN4Menu8DrawMenuEPvS0_)) 475 0270 0E94 0000 call _ZN11TaskManager7AddTaskEPFvPvS0_ES0_S0_NS_9TASK_TYPEEjNS_8PRIORITYE 476 /* epilogue start */ 477 .LBE3: 478 .LM82: 479 0274 0F90 pop __tmp_reg__ 480 0276 0F90 pop __tmp_reg__ 481 0278 0F90 pop __tmp_reg__ 482 027a CF91 pop r28 483 027c DF91 pop r29 484 027e 1F91 pop r17 485 0280 0F91 pop r16 486 0282 EF90 pop r14 487 0284 0895 ret 488 .LFE5: 490 .global _ZN5Input8keyStateE 491 .global _ZN5Input8keyStateE 492 .section .bss 495 _ZN5Input8keyStateE: 496 0000 0000 0000 .skip 5,0 496 00 497 .global _ZN5Input9lastStateE 498 .global _ZN5Input9lastStateE 501 _ZN5Input9lastStateE: 502 0005 0000 0000 .skip 5,0 502 00 503 .global _ZN5Input10key_eventsE 504 .global _ZN5Input10key_eventsE 507 _ZN5Input10key_eventsE: 508 000a 0000 0000 .skip 5,0 508 00 549 .Letext0: DEFINED SYMBOLS *ABS*:0000000000000000 input.cpp /tmp/ccC0ItFk.s:2 *ABS*:000000000000003f __SREG__ /tmp/ccC0ItFk.s:3 *ABS*:000000000000003e __SP_H__ /tmp/ccC0ItFk.s:4 *ABS*:000000000000003d __SP_L__ /tmp/ccC0ItFk.s:5 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccC0ItFk.s:6 *ABS*:0000000000000001 __zero_reg__ /tmp/ccC0ItFk.s:19 .text:0000000000000000 _ZN5Input4InitEv /tmp/ccC0ItFk.s:33 .text:0000000000000004 _ZN5Input13CheckKeyPressEPvS0_ /tmp/ccC0ItFk.s:495 .bss:0000000000000000 _ZN5Input8keyStateE /tmp/ccC0ItFk.s:507 .bss:000000000000000a _ZN5Input10key_eventsE /tmp/ccC0ItFk.s:501 .bss:0000000000000005 _ZN5Input9lastStateE /tmp/ccC0ItFk.s:132 .text:0000000000000082 _ZN5Input11ProcessKeysEPvS0_ UNDEFINED SYMBOLS __do_copy_data __do_clear_bss _ZN11TaskManager7AddTaskEPFvPvS0_ES0_S0_NS_9TASK_TYPEEjNS_8PRIORITYE _ZN4Menu8cur_menuE _ZN6Coffee19motor_filter_statusE _ZN6Coffee16motor_arm_statusE _ZN6Coffee8RunMotorEPvS0_ _ZN6Coffee8ResetWEBEPvS0_ _ZN3TWI4SendEhPhh _ZN6Coffee13cur_vacuum_pwE _ZN6Coffee9servo_posE _ZN6Coffee9SetVacuumEPvS0_ _ZN6Coffee8SetServoEPvS0_ _ZN4Menu8DrawMenuEPvS0_