Subversion Repositories group.electronics

Rev

Blame | Last modification | View Log | RSS feed

   1                            .file   "usbdrv.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                    .global usbSetInterrupt
  18                    usbSetInterrupt:
  19                    .LFB3:
  20                    .LM1:
  21                    .LVL0:
  22 0000 1F93                  push r17
  23                    /* prologue: function */
  24                    /* frame size = 0 */
  25                    /* stack size = 1 */
  26                    .L__stack_usage = 1
  27 0002 162F                  mov r17,r22
  28                    .LVL1:
  29                    .LBB63:
  30                    .LBB65:
  31                    .LM2:
  32 0004 2091 0000             lds r18,usbTxStatus1
  33 0008 24FF                  sbrs r18,4
  34 000a 00C0                  rjmp .L2
  35                    .LVL2:
  36                    .LM3:
  37 000c 2091 0000             lds r18,usbTxStatus1+1
  38 0010 38E8                  ldi r19,lo8(-120)
  39 0012 2327                  eor r18,r19
  40 0014 2093 0000             sts usbTxStatus1+1,r18
  41                    .L3:
  42                    .LM4:
  43 0018 A82F                  mov r26,r24
  44 001a B92F                  mov r27,r25
  45                    .LM5:
  46 001c 812F                  mov r24,r17
  47                    .LVL3:
  48 001e 8150                  subi r24,lo8(-(-1))
  49 0020 90E0                  ldi r25,lo8(0)
  50                    .LVL4:
  51 0022 8050                  subi r24,lo8(-(usbTxStatus1+3))
  52 0024 9040                  sbci r25,hi8(-(usbTxStatus1+3))
  53                    .LBE65:
  54                    .LBE63:
  55 0026 E0E0                  ldi r30,lo8(usbTxStatus1+2)
  56 0028 F0E0                  ldi r31,hi8(usbTxStatus1+2)
  57                    .LVL5:
  58                    .L4:
  59                    .LBB67:
  60                    .LBB64:
  61                    .LM6:
  62 002a 2D91                  ld r18,X+
  63 002c 2193                  st Z+,r18
  64                    .LVL6:
  65                    .LM7:
  66 002e E817                  cp r30,r24
  67 0030 F907                  cpc r31,r25
  68 0032 01F4                  brne .L4
  69                    .LM8:
  70 0034 80E0                  ldi r24,lo8(usbTxStatus1+2)
  71 0036 90E0                  ldi r25,hi8(usbTxStatus1+2)
  72 0038 612F                  mov r22,r17
  73 003a 00D0                  rcall usbCrc16Append
  74                    .LVL7:
  75                    .LM9:
  76 003c 1C5F                  subi r17,lo8(-(4))
  77                    .LVL8:
  78 003e 1093 0000             sts usbTxStatus1,r17
  79                    /* epilogue start */
  80                    .LBE64:
  81                    .LBE67:
  82                    .LM10:
  83 0042 1F91                  pop r17
  84                    .LVL9:
  85 0044 0895                  ret
  86                    .LVL10:
  87                    .L2:
  88                    .LBB68:
  89                    .LBB66:
  90                    .LM11:
  91 0046 2AE5                  ldi r18,lo8(90)
  92 0048 2093 0000             sts usbTxStatus1,r18
  93 004c 00C0                  rjmp .L3
  94                    .LBE66:
  95                    .LBE68:
  96                    .LFE3:
  98                    .global usbPoll
 100                    usbPoll:
 101                    .LFB10:
 102                    .LM12:
 103 004e 1F93                  push r17
 104 0050 CF93                  push r28
 105 0052 DF93                  push r29
 106                    /* prologue: function */
 107                    /* frame size = 0 */
 108                    /* stack size = 3 */
 109                    .L__stack_usage = 3
 110                    .LM13:
 111 0054 8091 0000             lds r24,usbRxLen
 112 0058 8350                  subi r24,lo8(-(-3))
 113                    .LVL11:
 114                    .LM14:
 115 005a 87FD                  sbrc r24,7
 116 005c 00C0                  rjmp .L8
 117                    .LM15:
 118 005e 2091 0000             lds r18,usbInputBufOffset
 119                    .LVL12:
 120                    .LBB69:
 121                    .LBB72:
 122                    .LM16:
 123 0062 9091 0000             lds r25,usbRxToken
 124 0066 9D32                  cpi r25,lo8(45)
 125 0068 01F4                  brne .+2
 126 006a 00C0                  rjmp .L52
 127                    .LVL13:
 128                    .L9:
 129                    .LBE72:
 130                    .LBE69:
 131                    .LM17:
 132 006c 1092 0000             sts usbRxLen,__zero_reg__
 133                    .L8:
 134                    .LM18:
 135 0070 8091 0000             lds r24,usbTxLen
 136 0074 84FF                  sbrs r24,4
 137 0076 00C0                  rjmp .L26
 138                    .LM19:
 139 0078 6091 0000             lds r22,usbMsgLen
 140 007c 6F3F                  cpi r22,lo8(-1)
 141 007e 01F0                  breq .L26
 142                    .LVL14:
 143                    .LBB107:
 144                    .LBB109:
 145                    .LM20:
 146 0080 6930                  cpi r22,lo8(9)
 147 0082 00F4                  brsh .+2
 148 0084 00C0                  rjmp .L53
 149                    .LVL15:
 150                    .LM21:
 151 0086 6850                  subi r22,lo8(-(-8))
 152 0088 6093 0000             sts usbMsgLen,r22
 153                    .LM22:
 154 008c 8091 0000             lds r24,usbTxBuf
 155 0090 98E8                  ldi r25,lo8(-120)
 156 0092 8927                  eor r24,r25
 157 0094 8093 0000             sts usbTxBuf,r24
 158                    .LVL16:
 159 0098 1CE0                  ldi r17,lo8(12)
 160                    .LM23:
 161 009a 68E0                  ldi r22,lo8(8)
 162                    .LVL17:
 163                    .L40:
 164                    .LBB113:
 165                    .LBB116:
 166                    .LBB118:
 167                    .LM24:
 168 009c 2091 0000             lds r18,usbMsgPtr
 169 00a0 3091 0000             lds r19,usbMsgPtr+1
 170                    .LVL18:
 171                    .LM25:
 172 00a4 8091 0000             lds r24,usbMsgFlags
 173 00a8 86FF                  sbrs r24,6
 174 00aa 00C0                  rjmp .L29
 175                    .LM26:
 176 00ac 462F                  mov r20,r22
 177 00ae 4150                  subi r20,lo8(-(-1))
 178 00b0 50E0                  ldi r21,lo8(0)
 179 00b2 CA01                  movw r24,r20
 180 00b4 8050                  subi r24,lo8(-(usbTxBuf+2))
 181 00b6 9040                  sbci r25,hi8(-(usbTxBuf+2))
 182                    .LBE118:
 183                    .LBE116:
 184                    .LBE113:
 185 00b8 F901                  movw r30,r18
 186 00ba A0E0                  ldi r26,lo8(usbTxBuf+1)
 187 00bc B0E0                  ldi r27,hi8(usbTxBuf+1)
 188                    .LVL19:
 189                    .L30:
 190                    .LBB126:
 191                    .LBB123:
 192                    .LBB121:
 193                    .LBB119:
 194                    .LBB120:
 195                    .LM27:
 196                    /* #APP */
 197                     ;  505 "usbdrv/usbdrv.c" 1
 198 00be 7491                  lpm r23, Z
 199                            
 200                     ;  0 "" 2
 201                    .LVL20:
 202                    /* #NOAPP */
 203                    .LBE120:
 204                    .LM28:
 205 00c0 7D93                  st X+,r23
 206                    .LVL21:
 207                    .LM29:
 208 00c2 3196                  adiw r30,1
 209                    .LVL22:
 210                    .LBE119:
 211                    .LM30:
 212 00c4 A817                  cp r26,r24
 213 00c6 B907                  cpc r27,r25
 214 00c8 01F4                  brne .L30
 215                    .LVL23:
 216                    .L50:
 217                    .LM31:
 218 00ca 4F5F                  subi r20,lo8(-(1))
 219 00cc 5F4F                  sbci r21,hi8(-(1))
 220                    .LM32:
 221 00ce 420F                  add r20,r18
 222 00d0 531F                  adc r21,r19
 223                    .LVL24:
 224                    .LM33:
 225 00d2 5093 0000             sts usbMsgPtr+1,r21
 226 00d6 4093 0000             sts usbMsgPtr,r20
 227                    .LBE121:
 228                    .LBE123:
 229                    .LBE126:
 230                    .LM34:
 231 00da 80E0                  ldi r24,lo8(usbTxBuf+1)
 232 00dc 90E0                  ldi r25,hi8(usbTxBuf+1)
 233 00de 00D0                  rcall usbCrc16Append
 234                    .LVL25:
 235                    .LM35:
 236 00e0 1C30                  cpi r17,lo8(12)
 237 00e2 01F0                  breq .+2
 238 00e4 00C0                  rjmp .L41
 239                    .LM36:
 240 00e6 1093 0000             sts usbTxLen,r17
 241                    .LVL26:
 242                    .L26:
 243                    .LM37:
 244 00ea 94E1                  ldi r25,lo8(20)
 245                    .LVL27:
 246                    .L37:
 247                    .LBE109:
 248                    .LBE107:
 249                    .LBB129:
 250                    .LM38:
 251 00ec 86B3                  in r24,54-32
 252                    .LVL28:
 253 00ee 8570                  andi r24,lo8(5)
 254                    .LVL29:
 255                    .LM39:
 256 00f0 01F4                  brne .L54
 257                    .LBE129:
 258                    .LM40:
 259 00f2 9150                  subi r25,lo8(-(-1))
 260                    .LVL30:
 261 00f4 01F4                  brne .L37
 262                    .LM41:
 263 00f6 1092 0000             sts usbNewDeviceAddr,__zero_reg__
 264                    .LM42:
 265 00fa 1092 0000             sts usbDeviceAddr,__zero_reg__
 266 00fe 11E0                  ldi r17,lo8(1)
 267                    .LVL31:
 268                    .L36:
 269                    .LBB130:
 270                    .LBB131:
 271                    .LM43:
 272 0100 8091 0000             lds r24,wasReset.1530
 273                    .LVL32:
 274 0104 1817                  cp r17,r24
 275 0106 01F0                  breq .L7
 276                    .LM44:
 277 0108 1123                  tst r17
 278 010a 01F0                  breq .L55
 279                    .L39:
 280                    .LM45:
 281 010c 1093 0000             sts wasReset.1530,r17
 282                    .L7:
 283                    /* epilogue start */
 284                    .LBE131:
 285                    .LBE130:
 286                    .LM46:
 287 0110 DF91                  pop r29
 288 0112 CF91                  pop r28
 289 0114 1F91                  pop r17
 290                    .LVL33:
 291 0116 0895                  ret
 292                    .LVL34:
 293                    .L54:
 294                    .LBB133:
 295                    .LM47:
 296 0118 11E0                  ldi r17,lo8(1)
 297 011a 9923                  tst r25
 298 011c 01F0                  breq .L36
 299 011e 10E0                  ldi r17,lo8(0)
 300 0120 00C0                  rjmp .L36
 301                    .LVL35:
 302                    .L55:
 303                    .LBE133:
 304                    .LBB134:
 305                    .LBB132:
 306                    .LM48:
 307 0122 00D0                  rcall hadUsbReset
 308 0124 00C0                  rjmp .L39
 309                    .LVL36:
 310                    .L52:
 311                    .LBE132:
 312                    .LBE134:
 313                    .LBB135:
 314                    .LBB71:
 315                    .LBB74:
 316                    .LM49:
 317 0126 8830                  cpi r24,lo8(8)
 318 0128 01F0                  breq .+2
 319 012a 00C0                  rjmp .L9
 320                    .LBE74:
 321                    .LBE71:
 322                    .LBE135:
 323                    .LM50:
 324 012c CCE0                  ldi r28,lo8(12)
 325 012e D0E0                  ldi r29,hi8(12)
 326 0130 C21B                  sub r28,r18
 327 0132 D109                  sbc r29,__zero_reg__
 328 0134 C050                  subi r28,lo8(-(usbRxBuf))
 329 0136 D040                  sbci r29,hi8(-(usbRxBuf))
 330                    .LBB136:
 331                    .LBB105:
 332                    .LBB103:
 333                    .LM51:
 334 0138 83EC                  ldi r24,lo8(-61)
 335                    .LVL37:
 336 013a 8093 0000             sts usbTxBuf,r24
 337                    .LM52:
 338 013e 8AE5                  ldi r24,lo8(90)
 339 0140 8093 0000             sts usbTxLen,r24
 340                    .LM53:
 341 0144 1092 0000             sts usbMsgFlags,__zero_reg__
 342                    .LVL38:
 343                    .LM54:
 344 0148 8881                  ld r24,Y
 345 014a 8076                  andi r24,lo8(96)
 346                    .LM55:
 347 014c 01F4                  brne .L56
 348                    .LVL39:
 349                    .LBB76:
 350                    .LBB79:
 351                    .LM56:
 352 014e 9A81                  ldd r25,Y+2
 353                    .LVL40:
 354                    .LM57:
 355 0150 1092 0000             sts usbTxBuf+9,__zero_reg__
 356                    .LBB81:
 357                    .LM58:
 358 0154 8981                  ldd r24,Y+1
 359                    .LVL41:
 360                    .LM59:
 361 0156 8823                  tst r24
 362 0158 01F4                  brne .L12
 363                    .LBB97:
 364                    .LM60:
 365 015a 1092 0000             sts usbTxBuf+10,__zero_reg__
 366                    .LVL42:
 367                    .LM61:
 368 015e 20E0                  ldi r18,lo8(usbTxBuf+9)
 369 0160 30E0                  ldi r19,hi8(usbTxBuf+9)
 370                    .LVL43:
 371                    .LM62:
 372 0162 82E0                  ldi r24,lo8(2)
 373                    .LVL44:
 374                    .L13:
 375                    .LBE97:
 376                    .LBE81:
 377                    .LM63:
 378 0164 3093 0000             sts usbMsgPtr+1,r19
 379 0168 2093 0000             sts usbMsgPtr,r18
 380                    .LVL45:
 381                    .L11:
 382                    .LBE79:
 383                    .LBE76:
 384                    .LM64:
 385 016c 9F81                  ldd r25,Y+7
 386 016e 9923                  tst r25
 387 0170 01F4                  brne .L24
 388 0172 9E81                  ldd r25,Y+6
 389 0174 9817                  cp r25,r24
 390 0176 00F4                  brsh .L24
 391 0178 892F                  mov r24,r25
 392                    .LVL46:
 393                    .L24:
 394                    .LM65:
 395 017a 8093 0000             sts usbMsgLen,r24
 396 017e 00C0                  rjmp .L9
 397                    .LVL47:
 398                    .L53:
 399                    .LBE103:
 400                    .LBE105:
 401                    .LBE136:
 402                    .LBB137:
 403                    .LBB108:
 404                    .LM66:
 405 0180 1092 0000             sts usbMsgLen,__zero_reg__
 406                    .LM67:
 407 0184 8091 0000             lds r24,usbTxBuf
 408 0188 98E8                  ldi r25,lo8(-120)
 409 018a 8927                  eor r24,r25
 410 018c 8093 0000             sts usbTxBuf,r24
 411                    .LVL48:
 412                    .LBB112:
 413                    .LBB115:
 414                    .LM68:
 415 0190 6623                  tst r22
 416 0192 01F0                  breq .+2
 417 0194 00C0                  rjmp .L57
 418                    .LBE115:
 419                    .LBE112:
 420                    .LM69:
 421 0196 80E0                  ldi r24,lo8(usbTxBuf+1)
 422 0198 90E0                  ldi r25,hi8(usbTxBuf+1)
 423                    .LVL49:
 424 019a 60E0                  ldi r22,lo8(0)
 425                    .LVL50:
 426 019c 00D0                  rcall usbCrc16Append
 427                    .LVL51:
 428                    .LM70:
 429 019e 14E0                  ldi r17,lo8(4)
 430                    .LVL52:
 431                    .L41:
 432                    .LM71:
 433 01a0 8FEF                  ldi r24,lo8(-1)
 434 01a2 8093 0000             sts usbMsgLen,r24
 435                    .LVL53:
 436                    .LM72:
 437 01a6 1093 0000             sts usbTxLen,r17
 438 01aa 00C0                  rjmp .L26
 439                    .LVL54:
 440                    .L29:
 441                    .LBB111:
 442                    .LBB124:
 443                    .LBB122:
 444                    .LM73:
 445 01ac D901                  movw r26,r18
 446                    .LM74:
 447 01ae 462F                  mov r20,r22
 448 01b0 4150                  subi r20,lo8(-(-1))
 449 01b2 50E0                  ldi r21,lo8(0)
 450 01b4 CA01                  movw r24,r20
 451 01b6 8050                  subi r24,lo8(-(usbTxBuf+2))
 452 01b8 9040                  sbci r25,hi8(-(usbTxBuf+2))
 453                    .LBE122:
 454                    .LBE124:
 455                    .LBE111:
 456 01ba E0E0                  ldi r30,lo8(usbTxBuf+1)
 457 01bc F0E0                  ldi r31,hi8(usbTxBuf+1)
 458                    .LVL55:
 459                    .L32:
 460                    .LBB110:
 461                    .LBB114:
 462                    .LBB117:
 463                    .LM75:
 464 01be 7D91                  ld r23,X+
 465 01c0 7193                  st Z+,r23
 466                    .LVL56:
 467                    .LM76:
 468 01c2 E817                  cp r30,r24
 469 01c4 F907                  cpc r31,r25
 470 01c6 01F4                  brne .L32
 471 01c8 00C0                  rjmp .L50
 472                    .LVL57:
 473                    .L56:
 474                    .LBE117:
 475                    .LBE114:
 476                    .LBE110:
 477                    .LBE108:
 478                    .LBE137:
 479                    .LBB138:
 480                    .LBB70:
 481                    .LBB73:
 482                    .LM77:
 483 01ca CE01                  movw r24,r28
 484                    .LVL58:
 485 01cc 00D0                  rcall usbFunctionSetup
 486                    .LVL59:
 487 01ce 00C0                  rjmp .L11
 488                    .LVL60:
 489                    .L12:
 490                    .LBB75:
 491                    .LBB78:
 492                    .LBB99:
 493                    .LM78:
 494 01d0 8530                  cpi r24,lo8(5)
 495 01d2 01F0                  breq .L58
 496                    .LM79:
 497 01d4 8630                  cpi r24,lo8(6)
 498 01d6 01F0                  breq .L59
 499                    .LM80:
 500 01d8 8830                  cpi r24,lo8(8)
 501 01da 01F0                  breq .L44
 502                    .LM81:
 503 01dc 8930                  cpi r24,lo8(9)
 504 01de 01F0                  breq .L60
 505                    .LM82:
 506 01e0 8A30                  cpi r24,lo8(10)
 507 01e2 01F0                  breq .L45
 508                    .LM83:
 509 01e4 8B30                  cpi r24,lo8(11)
 510 01e6 01F0                  breq .L61
 511                    .LM84:
 512 01e8 20E0                  ldi r18,lo8(usbTxBuf+9)
 513 01ea 30E0                  ldi r19,hi8(usbTxBuf+9)
 514                    .LVL61:
 515                    .LM85:
 516 01ec 80E0                  ldi r24,lo8(0)
 517                    .LVL62:
 518 01ee 00C0                  rjmp .L13
 519                    .L58:
 520                    .LM86:
 521 01f0 9093 0000             sts usbNewDeviceAddr,r25
 522                    .LM87:
 523 01f4 20E0                  ldi r18,lo8(usbTxBuf+9)
 524 01f6 30E0                  ldi r19,hi8(usbTxBuf+9)
 525                    .LM88:
 526 01f8 80E0                  ldi r24,lo8(0)
 527 01fa 00C0                  rjmp .L13
 528                    .L59:
 529                    .LBE99:
 530                    .LBE78:
 531                    .LM89:
 532 01fc 8B81                  ldd r24,Y+3
 533                    .LVL63:
 534                    .LBB77:
 535                    .LBB80:
 536                    .LBB86:
 537                    .LBB88:
 538                    .LBB90:
 539                    .LM90:
 540 01fe 8130                  cpi r24,lo8(1)
 541 0200 01F0                  breq .L62
 542                    .LM91:
 543 0202 8230                  cpi r24,lo8(2)
 544 0204 01F0                  breq .L63
 545                    .LM92:
 546 0206 8330                  cpi r24,lo8(3)
 547 0208 01F0                  breq .L64
 548                    .LM93:
 549 020a 8132                  cpi r24,lo8(33)
 550 020c 01F0                  breq .L65
 551                    .LM94:
 552 020e 8232                  cpi r24,lo8(34)
 553 0210 01F0                  breq .L66
 554                    .L43:
 555                    .LM95:
 556 0212 80E0                  ldi r24,lo8(0)
 557                    .LVL64:
 558                    .L17:
 559                    .LBE90:
 560                    .LM96:
 561 0214 90E4                  ldi r25,lo8(64)
 562                    .LVL65:
 563 0216 9093 0000             sts usbMsgFlags,r25
 564                    .LVL66:
 565 021a 00C0                  rjmp .L11
 566                    .LVL67:
 567                    .L44:
 568                    .LBE88:
 569                    .LBE86:
 570                    .LM97:
 571 021c 20E0                  ldi r18,lo8(usbConfiguration)
 572 021e 30E0                  ldi r19,hi8(usbConfiguration)
 573                    .LM98:
 574 0220 81E0                  ldi r24,lo8(1)
 575 0222 00C0                  rjmp .L13
 576                    .L60:
 577                    .LM99:
 578 0224 9093 0000             sts usbConfiguration,r25
 579                    .LM100:
 580 0228 20E0                  ldi r18,lo8(usbTxBuf+9)
 581 022a 30E0                  ldi r19,hi8(usbTxBuf+9)
 582                    .LM101:
 583 022c 80E0                  ldi r24,lo8(0)
 584 022e 00C0                  rjmp .L13
 585                    .LVL68:
 586                    .L62:
 587                    .LBB85:
 588                    .LBB95:
 589                    .LBB93:
 590                    .LM102:
 591 0230 80E0                  ldi r24,lo8(usbDescriptorDevice)
 592 0232 90E0                  ldi r25,hi8(usbDescriptorDevice)
 593                    .LVL69:
 594 0234 9093 0000             sts usbMsgPtr+1,r25
 595 0238 8093 0000             sts usbMsgPtr,r24
 596 023c 82E1                  ldi r24,lo8(18)
 597 023e 00C0                  rjmp .L17
 598                    .LVL70:
 599                    .L45:
 600                    .LBE93:
 601                    .LBE95:
 602                    .LBE85:
 603                    .LM103:
 604 0240 20E0                  ldi r18,lo8(usbTxBuf+9)
 605 0242 30E0                  ldi r19,hi8(usbTxBuf+9)
 606                    .LM104:
 607 0244 81E0                  ldi r24,lo8(1)
 608 0246 00C0                  rjmp .L13
 609                    .L61:
 610                    .LBB83:
 611                    .LBB84:
 612                    .LM105:
 613 0248 8BE4                  ldi r24,lo8(75)
 614 024a 8093 0000             sts usbTxStatus1+1,r24
 615                    .LM106:
 616 024e 20E0                  ldi r18,lo8(usbTxBuf+9)
 617 0250 30E0                  ldi r19,hi8(usbTxBuf+9)
 618                    .LM107:
 619 0252 80E0                  ldi r24,lo8(0)
 620 0254 00C0                  rjmp .L13
 621                    .LVL71:
 622                    .L64:
 623                    .LBE84:
 624                    .LBE83:
 625                    .LBB82:
 626                    .LBB87:
 627                    .LBB89:
 628                    .LBB91:
 629                    .LM108:
 630 0256 9923                  tst r25
 631 0258 01F4                  brne .L20
 632                    .LVL72:
 633                    .LM109:
 634 025a 80E0                  ldi r24,lo8(usbDescriptorString0)
 635 025c 90E0                  ldi r25,hi8(usbDescriptorString0)
 636                    .LVL73:
 637 025e 9093 0000             sts usbMsgPtr+1,r25
 638 0262 8093 0000             sts usbMsgPtr,r24
 639 0266 84E0                  ldi r24,lo8(4)
 640 0268 00C0                  rjmp .L17
 641                    .LVL74:
 642                    .L63:
 643                    .LBE91:
 644                    .LM110:
 645 026a 80E0                  ldi r24,lo8(usbDescriptorConfiguration)
 646 026c 90E0                  ldi r25,hi8(usbDescriptorConfiguration)
 647 026e 9093 0000             sts usbMsgPtr+1,r25
 648 0272 8093 0000             sts usbMsgPtr,r24
 649 0276 82E2                  ldi r24,lo8(34)
 650 0278 00C0                  rjmp .L17
 651                    .LVL75:
 652                    .L66:
 653                    .LM111:
 654 027a 80E0                  ldi r24,lo8(usbDescriptorHidReport)
 655 027c 90E0                  ldi r25,hi8(usbDescriptorHidReport)
 656 027e 9093 0000             sts usbMsgPtr+1,r25
 657 0282 8093 0000             sts usbMsgPtr,r24
 658 0286 8AE2                  ldi r24,lo8(42)
 659 0288 00C0                  rjmp .L17
 660                    .LVL76:
 661                    .L65:
 662                    .LM112:
 663 028a 80E0                  ldi r24,lo8(usbDescriptorConfiguration+18)
 664 028c 90E0                  ldi r25,hi8(usbDescriptorConfiguration+18)
 665 028e 9093 0000             sts usbMsgPtr+1,r25
 666 0292 8093 0000             sts usbMsgPtr,r24
 667 0296 89E0                  ldi r24,lo8(9)
 668 0298 00C0                  rjmp .L17
 669                    .LVL77:
 670                    .L57:
 671                    .LBE89:
 672                    .LBE87:
 673                    .LBE82:
 674                    .LBE80:
 675                    .LBE77:
 676                    .LBE75:
 677                    .LBE73:
 678                    .LBE70:
 679                    .LBE138:
 680                    .LBB139:
 681                    .LBB128:
 682                    .LBB127:
 683                    .LBB125:
 684                    .LM113:
 685 029a 162F                  mov r17,r22
 686 029c 1C5F                  subi r17,lo8(-(4))
 687 029e 00C0                  rjmp .L40
 688                    .LVL78:
 689                    .L20:
 690                    .LBE125:
 691                    .LBE127:
 692                    .LBE128:
 693                    .LBE139:
 694                    .LBB140:
 695                    .LBB106:
 696                    .LBB104:
 697                    .LBB102:
 698                    .LBB101:
 699                    .LBB100:
 700                    .LBB98:
 701                    .LBB96:
 702                    .LBB94:
 703                    .LBB92:
 704                    .LM114:
 705 02a0 9130                  cpi r25,lo8(1)
 706 02a2 01F0                  breq .L67
 707                    .LM115:
 708 02a4 9230                  cpi r25,lo8(2)
 709 02a6 01F0                  breq .+2
 710 02a8 00C0                  rjmp .L43
 711                    .LVL79:
 712                    .LM116:
 713 02aa 80E0                  ldi r24,lo8(usbDescriptorStringDevice)
 714 02ac 90E0                  ldi r25,hi8(usbDescriptorStringDevice)
 715                    .LVL80:
 716 02ae 9093 0000             sts usbMsgPtr+1,r25
 717 02b2 8093 0000             sts usbMsgPtr,r24
 718 02b6 88E2                  ldi r24,lo8(40)
 719 02b8 00C0                  rjmp .L17
 720                    .LVL81:
 721                    .L67:
 722                    .LM117:
 723 02ba 80E0                  ldi r24,lo8(usbDescriptorStringVendor)
 724 02bc 90E0                  ldi r25,hi8(usbDescriptorStringVendor)
 725 02be 9093 0000             sts usbMsgPtr+1,r25
 726 02c2 8093 0000             sts usbMsgPtr,r24
 727 02c6 86E1                  ldi r24,lo8(22)
 728 02c8 00C0                  rjmp .L17
 729                    .LBE92:
 730                    .LBE94:
 731                    .LBE96:
 732                    .LBE98:
 733                    .LBE100:
 734                    .LBE101:
 735                    .LBE102:
 736                    .LBE104:
 737                    .LBE106:
 738                    .LBE140:
 739                    .LFE10:
 741                    .global usbInit
 743                    usbInit:
 744                    .LFB11:
 745                    .LM118:
 746                    /* prologue: function */
 747                    /* frame size = 0 */
 748                    /* stack size = 0 */
 749                    .L__stack_usage = 0
 750                    .LM119:
 751 02ca 85B7                  in r24,85-32
 752 02cc 8360                  ori r24,lo8(3)
 753 02ce 85BF                  out 85-32,r24
 754                    .LM120:
 755 02d0 8BB7                  in r24,91-32
 756 02d2 8064                  ori r24,lo8(64)
 757 02d4 8BBF                  out 91-32,r24
 758                    .LBB141:
 759                    .LBB142:
 760                    .LM121:
 761 02d6 8BE4                  ldi r24,lo8(75)
 762 02d8 8093 0000             sts usbTxStatus1+1,r24
 763                    .LBE142:
 764                    .LBE141:
 765                    .LM122:
 766 02dc 8AE5                  ldi r24,lo8(90)
 767 02de 8093 0000             sts usbTxStatus1,r24
 768                    /* epilogue start */
 769                    .LM123:
 770 02e2 0895                  ret
 771                    .LFE11:
 773                    .global usbTxLen
 774                            .data
 777                    usbTxLen:
 778 0000 5A                    .byte   90
 779                    .global usbDescriptorString0
 780                            .section        .progmem.data,"a",@progbits
 783                    usbDescriptorString0:
 784 0000 04                    .byte   4
 785 0001 03                    .byte   3
 786 0002 09                    .byte   9
 787 0003 04                    .byte   4
 788                    .global usbDescriptorStringVendor
 791                    usbDescriptorStringVendor:
 792 0004 1603                  .word   790
 793 0006 7600                  .word   118
 794 0008 6900                  .word   105
 795 000a 6B00                  .word   107
 796 000c 6900                  .word   105
 797 000e 7400                  .word   116
 798 0010 7300                  .word   115
 799 0012 2E00                  .word   46
 800 0014 6300                  .word   99
 801 0016 6F00                  .word   111
 802 0018 6D00                  .word   109
 803                    .global usbDescriptorStringDevice
 806                    usbDescriptorStringDevice:
 807 001a 2803                  .word   808
 808 001c 5500                  .word   85
 809 001e 5300                  .word   83
 810 0020 4200                  .word   66
 811 0022 2000                  .word   32
 812 0024 4E00                  .word   78
 813 0026 4500                  .word   69
 814 0028 5300                  .word   83
 815 002a 2000                  .word   32
 816 002c 5000                  .word   80
 817 002e 6100                  .word   97
 818 0030 6400                  .word   100
 819 0032 2000                  .word   32
 820 0034 6100                  .word   97
 821 0036 6400                  .word   100
 822 0038 6100                  .word   97
 823 003a 7000                  .word   112
 824 003c 7400                  .word   116
 825 003e 6500                  .word   101
 826 0040 7200                  .word   114
 827                    .global usbDescriptorDevice
 830                    usbDescriptorDevice:
 831 0042 12                    .byte   18
 832 0043 01                    .byte   1
 833 0044 10                    .byte   16
 834 0045 01                    .byte   1
 835 0046 00                    .byte   0
 836 0047 00                    .byte   0
 837 0048 00                    .byte   0
 838 0049 08                    .byte   8
 839 004a EA                    .byte   -22
 840 004b 1D                    .byte   29
 841 004c 07                    .byte   7
 842 004d 10                    .byte   16
 843 004e 00                    .byte   0
 844 004f 01                    .byte   1
 845 0050 01                    .byte   1
 846 0051 02                    .byte   2
 847 0052 00                    .byte   0
 848 0053 01                    .byte   1
 849                    .global usbDescriptorConfiguration
 852                    usbDescriptorConfiguration:
 853 0054 09                    .byte   9
 854 0055 02                    .byte   2
 855 0056 22                    .byte   34
 856 0057 00                    .byte   0
 857 0058 01                    .byte   1
 858 0059 01                    .byte   1
 859 005a 00                    .byte   0
 860 005b 80                    .byte   -128
 861 005c 32                    .byte   50
 862 005d 09                    .byte   9
 863 005e 04                    .byte   4
 864 005f 00                    .byte   0
 865 0060 00                    .byte   0
 866 0061 01                    .byte   1
 867 0062 03                    .byte   3
 868 0063 00                    .byte   0
 869 0064 00                    .byte   0
 870 0065 00                    .byte   0
 871 0066 09                    .byte   9
 872 0067 21                    .byte   33
 873 0068 01                    .byte   1
 874 0069 01                    .byte   1
 875 006a 00                    .byte   0
 876 006b 01                    .byte   1
 877 006c 22                    .byte   34
 878 006d 2A                    .byte   42
 879 006e 00                    .byte   0
 880 006f 07                    .byte   7
 881 0070 05                    .byte   5
 882 0071 81                    .byte   -127
 883 0072 03                    .byte   3
 884 0073 08                    .byte   8
 885 0074 00                    .byte   0
 886 0075 0A                    .byte   10
 887                            .comm usbMsgPtr,2,1
 888                            .comm usbRxToken,1,1
 889                            .comm usbConfiguration,1,1
 890                            .comm usbTxStatus1,12,1
 891                            .comm usbRxBuf,22,1
 892                            .comm usbInputBufOffset,1,1
 893                            .comm usbDeviceAddr,1,1
 894                            .comm usbNewDeviceAddr,1,1
 895                            .comm usbRxLen,1,1
 896                            .comm usbCurrentTok,1,1
 897                            .comm usbTxBuf,11,1
 898                            .data
 901                    usbMsgLen:
 902 0001 FF                    .byte   -1
 903                            .lcomm usbMsgFlags,1
 904                            .lcomm wasReset.1530,1
 945                    .Letext0:
DEFINED SYMBOLS
                            *ABS*:00000000 usbdrv.c
     /tmp/ccz0Lc9R.s:2      *ABS*:0000003f __SREG__
     /tmp/ccz0Lc9R.s:3      *ABS*:0000003e __SP_H__
     /tmp/ccz0Lc9R.s:4      *ABS*:0000003d __SP_L__
     /tmp/ccz0Lc9R.s:5      *ABS*:00000034 __CCP__
     /tmp/ccz0Lc9R.s:6      *ABS*:00000000 __tmp_reg__
     /tmp/ccz0Lc9R.s:7      *ABS*:00000001 __zero_reg__
     /tmp/ccz0Lc9R.s:18     .text:00000000 usbSetInterrupt
                            *COM*:0000000c usbTxStatus1
     /tmp/ccz0Lc9R.s:100    .text:0000004e usbPoll
                            *COM*:00000001 usbRxLen
                            *COM*:00000001 usbInputBufOffset
                            *COM*:00000001 usbRxToken
     /tmp/ccz0Lc9R.s:777    .data:00000000 usbTxLen
     /tmp/ccz0Lc9R.s:901    .data:00000001 usbMsgLen
                            *COM*:0000000b usbTxBuf
                            *COM*:00000002 usbMsgPtr
                             .bss:00000000 usbMsgFlags
                            *COM*:00000001 usbNewDeviceAddr
                            *COM*:00000001 usbDeviceAddr
     /tmp/ccz0Lc9R.s:903    .bss:00000001 wasReset.1530
                            *COM*:00000016 usbRxBuf
                            *COM*:00000001 usbConfiguration
     /tmp/ccz0Lc9R.s:830    .progmem.data:00000042 usbDescriptorDevice
     /tmp/ccz0Lc9R.s:783    .progmem.data:00000000 usbDescriptorString0
     /tmp/ccz0Lc9R.s:852    .progmem.data:00000054 usbDescriptorConfiguration
     /tmp/ccz0Lc9R.s:806    .progmem.data:0000001a usbDescriptorStringDevice
     /tmp/ccz0Lc9R.s:791    .progmem.data:00000004 usbDescriptorStringVendor
     /tmp/ccz0Lc9R.s:743    .text:000002ca usbInit
                            *COM*:00000001 usbCurrentTok

UNDEFINED SYMBOLS
usbCrc16Append
hadUsbReset
usbFunctionSetup
usbDescriptorHidReport
__do_copy_data
__do_clear_bss