summaryrefslogtreecommitdiff
path: root/firmware/VirtualSerial.lst
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/VirtualSerial.lst')
-rw-r--r--firmware/VirtualSerial.lst738
1 files changed, 738 insertions, 0 deletions
diff --git a/firmware/VirtualSerial.lst b/firmware/VirtualSerial.lst
new file mode 100644
index 0000000..bc2df8c
--- /dev/null
+++ b/firmware/VirtualSerial.lst
@@ -0,0 +1,738 @@
+ 1 .file "VirtualSerial.c"
+ 2 __SREG__ = 0x3f
+ 3 __SP_H__ = 0x3e
+ 4 __SP_L__ = 0x3d
+ 5 __CCP__ = 0x34
+ 6 __tmp_reg__ = 0
+ 7 __zero_reg__ = 1
+ 15 .Ltext0:
+ 16 .section .text.lock_timer_setup,"ax",@progbits
+ 17 .global lock_timer_setup
+ 19 lock_timer_setup:
+ 20 .LFB86:
+ 21 .LSM0:
+ 22 /* prologue: function */
+ 23 /* frame size = 0 */
+ 24 .LSM1:
+ 25 0000 E0E8 ldi r30,lo8(128)
+ 26 0002 F0E0 ldi r31,hi8(128)
+ 27 0004 F093 8900 sts (136)+1,r31
+ 28 0008 E093 8800 sts 136,r30
+ 29 .LSM2:
+ 30 000c 88E0 ldi r24,lo8(8)
+ 31 000e 8083 st Z,r24
+ 32 .LSM3:
+ 33 0010 84E0 ldi r24,lo8(4)
+ 34 0012 8093 8100 sts 129,r24
+ 35 .LSM4:
+ 36 0016 82E0 ldi r24,lo8(2)
+ 37 0018 8093 6F00 sts 111,r24
+ 38 /* epilogue start */
+ 39 .LSM5:
+ 40 001c 0895 ret
+ 41 .LFE86:
+ 43 .section .text.lock_timer_reset,"ax",@progbits
+ 44 .global lock_timer_reset
+ 46 lock_timer_reset:
+ 47 .LFB87:
+ 48 .LSM6:
+ 49 /* prologue: function */
+ 50 /* frame size = 0 */
+ 51 .LSM7:
+ 52 0000 1092 0000 sts lock_timer_ticks,__zero_reg__
+ 53 /* epilogue start */
+ 54 .LSM8:
+ 55 0004 0895 ret
+ 56 .LFE87:
+ 58 .section .text.EVENT_USB_Device_Connect,"ax",@progbits
+ 59 .global EVENT_USB_Device_Connect
+ 61 EVENT_USB_Device_Connect:
+ 62 .LFB93:
+ 63 .LSM9:
+ 64 /* prologue: function */
+ 65 /* frame size = 0 */
+ 66 /* epilogue start */
+ 67 .LSM10:
+ 68 0000 0895 ret
+ 69 .LFE93:
+ 71 .section .text.EVENT_USB_Device_Disconnect,"ax",@progbits
+ 72 .global EVENT_USB_Device_Disconnect
+ 74 EVENT_USB_Device_Disconnect:
+ 75 .LFB94:
+ 76 .LSM11:
+ 77 /* prologue: function */
+ 78 /* frame size = 0 */
+ 79 /* epilogue start */
+ 80 .LSM12:
+ 81 0000 0895 ret
+ 82 .LFE94:
+ 84 .section .text.__vector_15,"ax",@progbits
+ 85 .global __vector_15
+ 87 __vector_15:
+ 88 .LFB97:
+ 89 .LSM13:
+ 90 0000 1F92 push __zero_reg__
+ 91 0002 0F92 push r0
+ 92 0004 0FB6 in r0,__SREG__
+ 93 0006 0F92 push r0
+ 94 0008 1124 clr __zero_reg__
+ 95 000a 8F93 push r24
+ 96 /* prologue: Signal */
+ 97 /* frame size = 0 */
+ 98 .LSM14:
+ 99 000c 1D99 sbic 35-32,5
+ 100 .LSM15:
+ 101 000e 2C9A sbi 37-32,4
+ 102 .L10:
+ 103 .LSM16:
+ 104 0010 8091 0000 lds r24,lock_timer_ticks
+ 105 0014 8F3F cpi r24,lo8(-1)
+ 106 0016 01F0 breq .L13
+ 107 .LSM17:
+ 108 0018 8091 0000 lds r24,lock_timer_ticks
+ 109 001c 8E31 cpi r24,lo8(30)
+ 110 001e 00F4 brsh .L12
+ 111 .LSM18:
+ 112 0020 8091 0000 lds r24,lock_timer_ticks
+ 113 0024 8F5F subi r24,lo8(-(1))
+ 114 0026 00C0 rjmp .L14
+ 115 .L12:
+ 116 .LSM19:
+ 117 0028 2C9A sbi 37-32,4
+ 118 .LSM20:
+ 119 002a 8FEF ldi r24,lo8(-1)
+ 120 .L14:
+ 121 002c 8093 0000 sts lock_timer_ticks,r24
+ 122 .L13:
+ 123 /* epilogue start */
+ 124 .LSM21:
+ 125 0030 8F91 pop r24
+ 126 0032 0F90 pop r0
+ 127 0034 0FBE out __SREG__,r0
+ 128 0036 0F90 pop r0
+ 129 0038 1F90 pop __zero_reg__
+ 130 003a 1895 reti
+ 131 .LFE97:
+ 133 .section .text.EVENT_USB_Device_ControlRequest,"ax",@progbits
+ 134 .global EVENT_USB_Device_ControlRequest
+ 136 EVENT_USB_Device_ControlRequest:
+ 137 .LFB96:
+ 138 .LSM22:
+ 139 /* prologue: function */
+ 140 /* frame size = 0 */
+ 141 .LSM23:
+ 142 0000 80E0 ldi r24,lo8(VirtualSerial_CDC_Interface)
+ 143 0002 90E0 ldi r25,hi8(VirtualSerial_CDC_Interface)
+ 144 0004 0E94 0000 call CDC_Device_ProcessControlRequest
+ 145 /* epilogue start */
+ 146 .LSM24:
+ 147 0008 0895 ret
+ 148 .LFE96:
+ 150 .section .text.EVENT_USB_Device_ConfigurationChanged,"ax",@progbits
+ 151 .global EVENT_USB_Device_ConfigurationChanged
+ 153 EVENT_USB_Device_ConfigurationChanged:
+ 154 .LFB95:
+ 155 .LSM25:
+ 156 /* prologue: function */
+ 157 /* frame size = 0 */
+ 158 .LSM26:
+ 159 0000 80E0 ldi r24,lo8(VirtualSerial_CDC_Interface)
+ 160 0002 90E0 ldi r25,hi8(VirtualSerial_CDC_Interface)
+ 161 0004 0E94 0000 call CDC_Device_ConfigureEndpoints
+ 162 /* epilogue start */
+ 163 .LSM27:
+ 164 0008 0895 ret
+ 165 .LFE95:
+ 167 .data
+ 168 .LC0:
+ 169 0000 4865 6C6C .string "Hello, World!\r\n"
+ 169 6F2C 2057
+ 169 6F72 6C64
+ 169 210D 0A00
+ 170 .LC1:
+ 171 0010 5265 626F .string "Rebooting!\r\n"
+ 171 6F74 696E
+ 171 6721 0D0A
+ 171 00
+ 172 .section .text.CheckPinStatus,"ax",@progbits
+ 173 .global CheckPinStatus
+ 175 CheckPinStatus:
+ 176 .LFB92:
+ 177 .LSM28:
+ 178 /* prologue: function */
+ 179 /* frame size = 0 */
+ 180 .LSM29:
+ 181 0000 1E9B sbis 35-32,6
+ 182 0002 00C0 rjmp .L20
+ 183 0004 20E0 ldi r18,lo8(0)
+ 184 0006 30E0 ldi r19,hi8(0)
+ 185 .LVL0:
+ 186 0008 00C0 rjmp .L21
+ 187 .LVL1:
+ 188 .L20:
+ 189 .LSM30:
+ 190 000a 1092 0000 sts ActionSent.3565,__zero_reg__
+ 191 000e 20E0 ldi r18,lo8(.LC0)
+ 192 0010 30E0 ldi r19,hi8(.LC0)
+ 193 .LVL2:
+ 194 .L21:
+ 195 .LSM31:
+ 196 0012 1F99 sbic 35-32,7
+ 197 0014 00C0 rjmp .L22
+ 198 .LSM32:
+ 199 0016 1092 0000 sts ActionSent.3565,__zero_reg__
+ 200 .LSM33:
+ 201 001a 1092 0000 sts (running)+1,__zero_reg__
+ 202 001e 1092 0000 sts running,__zero_reg__
+ 203 0022 20E0 ldi r18,lo8(.LC1)
+ 204 0024 30E0 ldi r19,hi8(.LC1)
+ 205 0026 00C0 rjmp .L23
+ 206 .L22:
+ 207 .LSM34:
+ 208 0028 2115 cp r18,__zero_reg__
+ 209 002a 3105 cpc r19,__zero_reg__
+ 210 002c 01F0 breq .L26
+ 211 .L23:
+ 212 002e 8091 0000 lds r24,ActionSent.3565
+ 213 0032 8823 tst r24
+ 214 0034 01F4 brne .L26
+ 215 .LSM35:
+ 216 0036 81E0 ldi r24,lo8(1)
+ 217 0038 8093 0000 sts ActionSent.3565,r24
+ 218 .LSM36:
+ 219 003c C901 movw r24,r18
+ 220 003e 60E0 ldi r22,lo8(USBSerialStream)
+ 221 0040 70E0 ldi r23,hi8(USBSerialStream)
+ 222 0042 0E94 0000 call fputs
+ 223 .LVL3:
+ 224 0046 88EE ldi r24,lo8(1000)
+ 225 0048 93E0 ldi r25,hi8(1000)
+ 226 .LVL4:
+ 227 .LBB22:
+ 228 .LBB23:
+ 229 .LBB24:
+ 230 .LBB25:
+ 231 .LSM37:
+ 232 004a 20E9 ldi r18,lo8(400)
+ 233 004c 31E0 ldi r19,hi8(400)
+ 234 .L25:
+ 235 004e F901 movw r30,r18
+ 236 .LVL5:
+ 237 /* #APP */
+ 238 ; 105 "/usr/lib/gcc/avr/4.3.5/../../../avr/include/util/delay_basic.h" 1
+ 239 0050 3197 1: sbiw r30,1
+ 240 0052 01F4 brne 1b
+ 241 ; 0 "" 2
+ 242 /* #NOAPP */
+ 243 .LBE25:
+ 244 .LBE24:
+ 245 .LSM38:
+ 246 0054 0197 sbiw r24,1
+ 247 .LSM39:
+ 248 0056 01F4 brne .L25
+ 249 .LVL6:
+ 250 .L26:
+ 251 0058 0895 ret
+ 252 .LBE23:
+ 253 .LBE22:
+ 254 .LFE92:
+ 256 .section .text.SetupHardware,"ax",@progbits
+ 257 .global SetupHardware
+ 259 SetupHardware:
+ 260 .LFB91:
+ 261 .LSM40:
+ 262 /* prologue: function */
+ 263 /* frame size = 0 */
+ 264 .LSM41:
+ 265 0000 84B7 in r24,84-32
+ 266 0002 877F andi r24,lo8(-9)
+ 267 0004 84BF out 84-32,r24
+ 268 .LSM42:
+ 269 0006 2EE0 ldi r18,lo8(14)
+ 270 0008 88E1 ldi r24,lo8(24)
+ 271 000a 90E0 ldi r25,hi8(24)
+ 272 /* #APP */
+ 273 ; 212 "VirtualSerial.c" 1
+ 274 000c 0FB6 in __tmp_reg__,__SREG__
+ 275 000e F894 cli
+ 276 0010 A895 wdr
+ 277 0012 8093 6000 sts 96,r24
+ 278 0016 0FBE out __SREG__,__tmp_reg__
+ 279 0018 2093 6000 sts 96,r18
+ 280
+ 281 ; 0 "" 2
+ 282 /* #NOAPP */
+ 283 .LBB26:
+ 284 .LBB27:
+ 285 .LSM43:
+ 286 001c 90E0 ldi r25,lo8(0)
+ 287 001e 80E8 ldi r24,lo8(-128)
+ 288 /* #APP */
+ 289 ; 1394 "/usr/lib/gcc/avr/4.3.5/../../../avr/include/avr/power.h" 1
+ 290 0020 0FB6 in __tmp_reg__,__SREG__
+ 291 0022 F894 cli
+ 292 0024 8093 6100 sts 97, r24
+ 293 0028 9093 6100 sts 97, r25
+ 294 002c 0FBE out __SREG__, __tmp_reg__
+ 295 ; 0 "" 2
+ 296 /* #NOAPP */
+ 297 .LBE27:
+ 298 .LBE26:
+ 299 .LSM44:
+ 300 002e 0E94 0000 call USB_Init
+ 301 /* epilogue start */
+ 302 .LSM45:
+ 303 0032 0895 ret
+ 304 .LFE91:
+ 306 .data
+ 307 .LC2:
+ 308 001d 636F 6C61 .string "cola"
+ 308 00
+ 309 .LC3:
+ 310 0022 6D6D 6D21 .string "mmm! LED toggeled\r\n"
+ 310 204C 4544
+ 310 2074 6F67
+ 310 6765 6C65
+ 310 640D 0A00
+ 311 .LC4:
+ 312 0036 7265 626F .string "reboot"
+ 312 6F74 00
+ 313 .LC5:
+ 314 003d 7265 7365 .string "reset"
+ 314 7400
+ 315 .LC6:
+ 316 0043 746F 6767 .string "toggle"
+ 316 6C65 00
+ 317 .LC7:
+ 318 004a 546F 6767 .string "Toggling Magnet Lock\r\n"
+ 318 6C69 6E67
+ 318 204D 6167
+ 318 6E65 7420
+ 318 4C6F 636B
+ 319 .LC8:
+ 320 0061 6C6F 636B .string "lock"
+ 320 00
+ 321 .LC9:
+ 322 0066 7374 6174 .string "status: locked\n"
+ 322 7573 3A20
+ 322 6C6F 636B
+ 322 6564 0A00
+ 323 .LC10:
+ 324 0076 756E 6C6F .string "unlock"
+ 324 636B 00
+ 325 .LC11:
+ 326 007d 7374 6174 .string "status: unlocked\n"
+ 326 7573 3A20
+ 326 756E 6C6F
+ 326 636B 6564
+ 326 0A00
+ 327 .LC12:
+ 328 008f 646F 6F72 .string "doorstatus"
+ 328 7374 6174
+ 328 7573 00
+ 329 .LC13:
+ 330 009a 646F 6F72 .string "doorstatus: open\n"
+ 330 7374 6174
+ 330 7573 3A20
+ 330 6F70 656E
+ 330 0A00
+ 331 .LC14:
+ 332 00ac 646F 6F72 .string "doorstatus: closed\n"
+ 332 7374 6174
+ 332 7573 3A20
+ 332 636C 6F73
+ 332 6564 0A00
+ 333 .section .text.handle_command,"ax",@progbits
+ 334 .global handle_command
+ 336 handle_command:
+ 337 .LFB89:
+ 338 .LSM46:
+ 339 .LVL7:
+ 340 0000 CF93 push r28
+ 341 0002 DF93 push r29
+ 342 /* prologue: function */
+ 343 /* frame size = 0 */
+ 344 0004 EC01 movw r28,r24
+ 345 .LSM47:
+ 346 0006 80E0 ldi r24,lo8(.LC2)
+ 347 0008 90E0 ldi r25,hi8(.LC2)
+ 348 .LVL8:
+ 349 000a BE01 movw r22,r28
+ 350 000c 0E94 0000 call strcmp
+ 351 0010 0097 sbiw r24,0
+ 352 0012 01F4 brne .L31
+ 353 .LSM48:
+ 354 0014 85B1 in r24,37-32
+ 355 0016 90E2 ldi r25,lo8(32)
+ 356 0018 8927 eor r24,r25
+ 357 001a 85B9 out 37-32,r24
+ 358 .LSM49:
+ 359 001c 80E0 ldi r24,lo8(.LC3)
+ 360 001e 90E0 ldi r25,hi8(.LC3)
+ 361 0020 00C0 rjmp .L40
+ 362 .L31:
+ 363 .LSM50:
+ 364 0022 80E0 ldi r24,lo8(.LC4)
+ 365 0024 90E0 ldi r25,hi8(.LC4)
+ 366 0026 BE01 movw r22,r28
+ 367 0028 0E94 0000 call strcmp
+ 368 002c 0097 sbiw r24,0
+ 369 002e 01F0 breq .L33
+ 370 0030 80E0 ldi r24,lo8(.LC5)
+ 371 0032 90E0 ldi r25,hi8(.LC5)
+ 372 0034 BE01 movw r22,r28
+ 373 0036 0E94 0000 call strcmp
+ 374 003a 0097 sbiw r24,0
+ 375 003c 01F4 brne .L34
+ 376 .L33:
+ 377 .LSM51:
+ 378 003e 80E0 ldi r24,lo8(.LC1)
+ 379 0040 90E0 ldi r25,hi8(.LC1)
+ 380 0042 60E0 ldi r22,lo8(USBSerialStream)
+ 381 0044 70E0 ldi r23,hi8(USBSerialStream)
+ 382 0046 0E94 0000 call fputs
+ 383 .LSM52:
+ 384 004a 1092 0000 sts (running)+1,__zero_reg__
+ 385 004e 1092 0000 sts running,__zero_reg__
+ 386 0052 00C0 rjmp .L39
+ 387 .L34:
+ 388 .LSM53:
+ 389 0054 80E0 ldi r24,lo8(.LC6)
+ 390 0056 90E0 ldi r25,hi8(.LC6)
+ 391 0058 BE01 movw r22,r28
+ 392 005a 0E94 0000 call strcmp
+ 393 005e 0097 sbiw r24,0
+ 394 0060 01F4 brne .L35
+ 395 .LSM54:
+ 396 0062 80E0 ldi r24,lo8(.LC7)
+ 397 0064 90E0 ldi r25,hi8(.LC7)
+ 398 0066 60E0 ldi r22,lo8(USBSerialStream)
+ 399 0068 70E0 ldi r23,hi8(USBSerialStream)
+ 400 006a 0E94 0000 call fputs
+ 401 .LSM55:
+ 402 006e 85B1 in r24,37-32
+ 403 0070 90E1 ldi r25,lo8(16)
+ 404 0072 8927 eor r24,r25
+ 405 0074 85B9 out 37-32,r24
+ 406 0076 00C0 rjmp .L39
+ 407 .L35:
+ 408 .LSM56:
+ 409 0078 80E0 ldi r24,lo8(.LC8)
+ 410 007a 90E0 ldi r25,hi8(.LC8)
+ 411 007c BE01 movw r22,r28
+ 412 007e 0E94 0000 call strcmp
+ 413 0082 0097 sbiw r24,0
+ 414 0084 01F4 brne .L36
+ 415 .LSM57:
+ 416 0086 80E0 ldi r24,lo8(.LC9)
+ 417 0088 90E0 ldi r25,hi8(.LC9)
+ 418 008a 60E0 ldi r22,lo8(USBSerialStream)
+ 419 008c 70E0 ldi r23,hi8(USBSerialStream)
+ 420 008e 0E94 0000 call fputs
+ 421 .LSM58:
+ 422 0092 2C9A sbi 37-32,4
+ 423 0094 00C0 rjmp .L39
+ 424 .L36:
+ 425 .LSM59:
+ 426 0096 80E0 ldi r24,lo8(.LC10)
+ 427 0098 90E0 ldi r25,hi8(.LC10)
+ 428 009a BE01 movw r22,r28
+ 429 009c 0E94 0000 call strcmp
+ 430 00a0 0097 sbiw r24,0
+ 431 00a2 01F4 brne .L37
+ 432 .LSM60:
+ 433 00a4 80E0 ldi r24,lo8(.LC11)
+ 434 00a6 90E0 ldi r25,hi8(.LC11)
+ 435 00a8 60E0 ldi r22,lo8(USBSerialStream)
+ 436 00aa 70E0 ldi r23,hi8(USBSerialStream)
+ 437 00ac 0E94 0000 call fputs
+ 438 .LSM61:
+ 439 00b0 2C98 cbi 37-32,4
+ 440 .LSM62:
+ 441 00b2 0E94 0000 call lock_timer_reset
+ 442 00b6 00C0 rjmp .L39
+ 443 .L37:
+ 444 .LSM63:
+ 445 00b8 80E0 ldi r24,lo8(.LC12)
+ 446 00ba 90E0 ldi r25,hi8(.LC12)
+ 447 00bc BE01 movw r22,r28
+ 448 00be 0E94 0000 call strcmp
+ 449 00c2 0097 sbiw r24,0
+ 450 00c4 01F4 brne .L39
+ 451 .LSM64:
+ 452 00c6 1D9B sbis 35-32,5
+ 453 00c8 00C0 rjmp .L38
+ 454 .LSM65:
+ 455 00ca 80E0 ldi r24,lo8(.LC13)
+ 456 00cc 90E0 ldi r25,hi8(.LC13)
+ 457 00ce 00C0 rjmp .L40
+ 458 .L38:
+ 459 .LSM66:
+ 460 00d0 80E0 ldi r24,lo8(.LC14)
+ 461 00d2 90E0 ldi r25,hi8(.LC14)
+ 462 .L40:
+ 463 00d4 60E0 ldi r22,lo8(USBSerialStream)
+ 464 00d6 70E0 ldi r23,hi8(USBSerialStream)
+ 465 00d8 0E94 0000 call fputs
+ 466 .L39:
+ 467 /* epilogue start */
+ 468 .LSM67:
+ 469 00dc DF91 pop r29
+ 470 00de CF91 pop r28
+ 471 .LVL9:
+ 472 00e0 0895 ret
+ 473 .LFE89:
+ 475 .section .text.CheckACMStatus,"ax",@progbits
+ 476 .global CheckACMStatus
+ 478 CheckACMStatus:
+ 479 .LFB90:
+ 480 .LSM68:
+ 481 0000 CF93 push r28
+ 482 0002 DF93 push r29
+ 483 /* prologue: function */
+ 484 /* frame size = 0 */
+ 485 0004 00C0 rjmp .L48
+ 486 .LVL10:
+ 487 .L44:
+ 488 .LSM69:
+ 489 0006 CE01 movw r24,r28
+ 490 .LVL11:
+ 491 0008 60E0 ldi r22,lo8(USBSerialStream)
+ 492 000a 70E0 ldi r23,hi8(USBSerialStream)
+ 493 000c 0E94 0000 call fputc
+ 494 .LSM70:
+ 495 0010 CD30 cpi r28,13
+ 496 0012 D105 cpc r29,__zero_reg__
+ 497 0014 01F4 brne .L43
+ 498 .LSM71:
+ 499 0016 8AE0 ldi r24,lo8(10)
+ 500 0018 90E0 ldi r25,hi8(10)
+ 501 001a 60E0 ldi r22,lo8(USBSerialStream)
+ 502 001c 70E0 ldi r23,hi8(USBSerialStream)
+ 503 001e 0E94 0000 call fputc
+ 504 .LSM72:
+ 505 0022 8091 0000 lds r24,len.3545
+ 506 0026 E82F mov r30,r24
+ 507 0028 F0E0 ldi r31,lo8(0)
+ 508 002a E050 subi r30,lo8(-(buf.3544))
+ 509 002c F040 sbci r31,hi8(-(buf.3544))
+ 510 002e 1082 st Z,__zero_reg__
+ 511 0030 8F5F subi r24,lo8(-(1))
+ 512 0032 8093 0000 sts len.3545,r24
+ 513 .LSM73:
+ 514 0036 80E0 ldi r24,lo8(buf.3544)
+ 515 0038 90E0 ldi r25,hi8(buf.3544)
+ 516 003a 0E94 0000 call handle_command
+ 517 003e 00C0 rjmp .L49
+ 518 .L43:
+ 519 .LSM74:
+ 520 0040 8091 0000 lds r24,len.3545
+ 521 0044 E82F mov r30,r24
+ 522 0046 F0E0 ldi r31,lo8(0)
+ 523 0048 E050 subi r30,lo8(-(buf.3544))
+ 524 004a F040 sbci r31,hi8(-(buf.3544))
+ 525 004c C083 st Z,r28
+ 526 004e 8F5F subi r24,lo8(-(1))
+ 527 0050 8093 0000 sts len.3545,r24
+ 528 .LSM75:
+ 529 0054 8032 cpi r24,lo8(32)
+ 530 0056 01F4 brne .L48
+ 531 .L49:
+ 532 .LSM76:
+ 533 0058 1092 0000 sts len.3545,__zero_reg__
+ 534 .L48:
+ 535 .LSM77:
+ 536 005c 80E0 ldi r24,lo8(VirtualSerial_CDC_Interface)
+ 537 005e 90E0 ldi r25,hi8(VirtualSerial_CDC_Interface)
+ 538 0060 0E94 0000 call CDC_Device_ReceiveByte
+ 539 0064 EC01 movw r28,r24
+ 540 0066 1816 cp __zero_reg__,r24
+ 541 0068 1906 cpc __zero_reg__,r25
+ 542 006a 04F0 brlt .L44
+ 543 .LVL12:
+ 544 /* epilogue start */
+ 545 .LSM78:
+ 546 006c DF91 pop r29
+ 547 006e CF91 pop r28
+ 548 0070 0895 ret
+ 549 .LFE90:
+ 551 .section .text.main,"ax",@progbits
+ 552 .global main
+ 554 main:
+ 555 .LFB88:
+ 556 .LSM79:
+ 557 0000 CF93 push r28
+ 558 0002 DF93 push r29
+ 559 /* prologue: function */
+ 560 /* frame size = 0 */
+ 561 .LSM80:
+ 562 0004 81E1 ldi r24,lo8(17)
+ 563 0006 84B9 out 36-32,r24
+ 564 .LSM81:
+ 565 0008 15B8 out 37-32,__zero_reg__
+ 566 .LSM82:
+ 567 000a 0E94 0000 call SetupHardware
+ 568 .LSM83:
+ 569 000e 0E94 0000 call lock_timer_setup
+ 570 .LSM84:
+ 571 0012 80E0 ldi r24,lo8(VirtualSerial_CDC_Interface)
+ 572 0014 90E0 ldi r25,hi8(VirtualSerial_CDC_Interface)
+ 573 0016 60E0 ldi r22,lo8(USBSerialStream)
+ 574 0018 70E0 ldi r23,hi8(USBSerialStream)
+ 575 001a 0E94 0000 call CDC_Device_CreateStream
+ 576 .LSM85:
+ 577 /* #APP */
+ 578 ; 109 "VirtualSerial.c" 1
+ 579 001e 7894 sei
+ 580 ; 0 "" 2
+ 581 /* #NOAPP */
+ 582 .LBB28:
+ 583 .LBB29:
+ 584 .LBB30:
+ 585 .LBB31:
+ 586 .LSM86:
+ 587 0020 C0E9 ldi r28,lo8(400)
+ 588 0022 D1E0 ldi r29,hi8(400)
+ 589 0024 00C0 rjmp .L51
+ 590 .L53:
+ 591 .LBE31:
+ 592 .LBE30:
+ 593 .LBE29:
+ 594 .LBE28:
+ 595 .LSM87:
+ 596 /* #APP */
+ 597 ; 113 "VirtualSerial.c" 1
+ 598 0026 A895 wdr
+ 599 ; 0 "" 2
+ 600 /* #NOAPP */
+ 601 0028 84EC ldi r24,lo8(2500)
+ 602 002a 99E0 ldi r25,hi8(2500)
+ 603 .LVL13:
+ 604 .L52:
+ 605 .LBB35:
+ 606 .LBB34:
+ 607 .LBB33:
+ 608 .LBB32:
+ 609 .LSM88:
+ 610 002c FE01 movw r30,r28
+ 611 .LVL14:
+ 612 /* #APP */
+ 613 ; 105 "/usr/lib/gcc/avr/4.3.5/../../../avr/include/util/delay_basic.h" 1
+ 614 002e 3197 1: sbiw r30,1
+ 615 0030 01F4 brne 1b
+ 616 ; 0 "" 2
+ 617 /* #NOAPP */
+ 618 .LBE32:
+ 619 .LBE33:
+ 620 .LSM89:
+ 621 0032 0197 sbiw r24,1
+ 622 .LSM90:
+ 623 0034 01F4 brne .L52
+ 624 .LBE34:
+ 625 .LBE35:
+ 626 .LSM91:
+ 627 0036 0E94 0000 call CheckACMStatus
+ 628 .LVL15:
+ 629 .LSM92:
+ 630 003a 80E0 ldi r24,lo8(VirtualSerial_CDC_Interface)
+ 631 003c 90E0 ldi r25,hi8(VirtualSerial_CDC_Interface)
+ 632 003e 0E94 0000 call CDC_Device_USBTask
+ 633 .LSM93:
+ 634 0042 0E94 0000 call USB_USBTask
+ 635 .L51:
+ 636 .LSM94:
+ 637 0046 8091 0000 lds r24,running
+ 638 004a 9091 0000 lds r25,(running)+1
+ 639 004e 892B or r24,r25
+ 640 0050 01F4 brne .L53
+ 641 .LBB36:
+ 642 .LBB37:
+ 643 .LSM95:
+ 644 0052 8091 E000 lds r24,224
+ 645 0056 8160 ori r24,lo8(1)
+ 646 0058 8093 E000 sts 224,r24
+ 647 .LBE37:
+ 648 .LBE36:
+ 649 .LSM96:
+ 650 005c 2CE0 ldi r18,lo8(12)
+ 651 005e 88E1 ldi r24,lo8(24)
+ 652 0060 90E0 ldi r25,hi8(24)
+ 653 /* #APP */
+ 654 ; 129 "VirtualSerial.c" 1
+ 655 0062 0FB6 in __tmp_reg__,__SREG__
+ 656 0064 F894 cli
+ 657 0066 A895 wdr
+ 658 0068 8093 6000 sts 96,r24
+ 659 006c 0FBE out __SREG__,__tmp_reg__
+ 660 006e 2093 6000 sts 96,r18
+ 661
+ 662 ; 0 "" 2
+ 663 /* #NOAPP */
+ 664 .L54:
+ 665 0072 00C0 rjmp .L54
+ 666 .LFE88:
+ 668 .global VirtualSerial_CDC_Interface
+ 669 .data
+ 672 VirtualSerial_CDC_Interface:
+ 673 00c0 00 .byte 0
+ 674 00c1 03 .byte 3
+ 675 00c2 1000 .word 16
+ 676 00c4 00 .byte 0
+ 677 00c5 04 .byte 4
+ 678 00c6 1000 .word 16
+ 679 00c8 00 .byte 0
+ 680 00c9 02 .byte 2
+ 681 00ca 0800 .word 8
+ 682 00cc 00 .byte 0
+ 683 00cd 0000 0000 .skip 9,0
+ 683 0000 0000
+ 683 00
+ 686 running:
+ 687 00d6 0100 .word 1
+ 688 .lcomm ActionSent.3565,1
+ 689 .lcomm len.3545,1
+ 690 .lcomm buf.3544,32
+ 691 .lcomm USBSerialStream,14
+ 692 .lcomm lock_timer_ticks,1
+ 805 .Letext0:
+DEFINED SYMBOLS
+ *ABS*:0000000000000000 VirtualSerial.c
+ /tmp/ccpcr8YL.s:2 *ABS*:000000000000003f __SREG__
+ /tmp/ccpcr8YL.s:3 *ABS*:000000000000003e __SP_H__
+ /tmp/ccpcr8YL.s:4 *ABS*:000000000000003d __SP_L__
+ /tmp/ccpcr8YL.s:5 *ABS*:0000000000000034 __CCP__
+ /tmp/ccpcr8YL.s:6 *ABS*:0000000000000000 __tmp_reg__
+ /tmp/ccpcr8YL.s:7 *ABS*:0000000000000001 __zero_reg__
+ /tmp/ccpcr8YL.s:19 .text.lock_timer_setup:0000000000000000 lock_timer_setup
+ /tmp/ccpcr8YL.s:46 .text.lock_timer_reset:0000000000000000 lock_timer_reset
+ /tmp/ccpcr8YL.s:691 .bss:0000000000000030 lock_timer_ticks
+ /tmp/ccpcr8YL.s:61 .text.EVENT_USB_Device_Connect:0000000000000000 EVENT_USB_Device_Connect
+ /tmp/ccpcr8YL.s:74 .text.EVENT_USB_Device_Disconnect:0000000000000000 EVENT_USB_Device_Disconnect
+ /tmp/ccpcr8YL.s:87 .text.__vector_15:0000000000000000 __vector_15
+ /tmp/ccpcr8YL.s:136 .text.EVENT_USB_Device_ControlRequest:0000000000000000 EVENT_USB_Device_ControlRequest
+ /tmp/ccpcr8YL.s:672 .data:00000000000000c0 VirtualSerial_CDC_Interface
+ /tmp/ccpcr8YL.s:153 .text.EVENT_USB_Device_ConfigurationChanged:0000000000000000 EVENT_USB_Device_ConfigurationChanged
+ /tmp/ccpcr8YL.s:175 .text.CheckPinStatus:0000000000000000 CheckPinStatus
+ .bss:0000000000000000 ActionSent.3565
+ /tmp/ccpcr8YL.s:686 .data:00000000000000d6 running
+ /tmp/ccpcr8YL.s:690 .bss:0000000000000022 USBSerialStream
+ /tmp/ccpcr8YL.s:259 .text.SetupHardware:0000000000000000 SetupHardware
+ /tmp/ccpcr8YL.s:336 .text.handle_command:0000000000000000 handle_command
+ /tmp/ccpcr8YL.s:478 .text.CheckACMStatus:0000000000000000 CheckACMStatus
+ /tmp/ccpcr8YL.s:688 .bss:0000000000000001 len.3545
+ /tmp/ccpcr8YL.s:689 .bss:0000000000000002 buf.3544
+ /tmp/ccpcr8YL.s:554 .text.main:0000000000000000 main
+
+UNDEFINED SYMBOLS
+CDC_Device_ProcessControlRequest
+CDC_Device_ConfigureEndpoints
+fputs
+USB_Init
+strcmp
+fputc
+CDC_Device_ReceiveByte
+CDC_Device_CreateStream
+CDC_Device_USBTask
+USB_USBTask
+__do_copy_data
+__do_clear_bss