⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isr.lis

📁 基于D12
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0320 2882              std y+0,R2
 0322 2227              clr R18
 0324 01E0              ldi R16,1
 0326 0E940000          xcall _D12_WriteEndpoint
 032A                   .dbline 153
 032A           ;      bEPPflags.bits.control_state=USB_IDLE;
 032A 80910600          lds R24,_bEPPflags
 032E 8F79              andi R24,159
 0330 80930600          sts _bEPPflags,R24
 0334                   .dbline 154
 0334           ;   }
 0334           L72:
 0334           L64:
 0334           L55:
 0334                   .dbline -2
 0334           L49:
 0334 2296              adiw R28,2
 0336 0E940000          xcall pop_gset1
 033A                   .dbline 0 ; func end
 033A 0895              ret
 033C                   .dbsym r i 20 S
 033C                   .dbend
 033C                   .dbfunc e ep1_txdone _ep1_txdone fV
                        .even
 033C           _ep1_txdone::
 033C                   .dbline -1
 033C                   .dbline 157
 033C           ; }
 033C           ; void ep1_txdone(void)
 033C           ; {
 033C                   .dbline 158
 033C           ;    D12_ReadLastTransactionStatus(3);
 033C 03E0              ldi R16,3
 033E 0E940000          xcall _D12_ReadLastTransactionStatus
 0342                   .dbline -2
 0342           L74:
 0342                   .dbline 0 ; func end
 0342 0895              ret
 0344                   .dbend
 0344                   .dbfunc e ep1_rxdone _ep1_rxdone fV
                        .even
 0344           _ep1_rxdone::
 0344                   .dbline -1
 0344                   .dbline 161
 0344           ; }
 0344           ; void ep1_rxdone(void)
 0344           ; {
 0344                   .dbline 162
 0344           ;    D12_ReadLastTransactionStatus(2); 
 0344 02E0              ldi R16,2
 0346 0E940000          xcall _D12_ReadLastTransactionStatus
 034A                   .dbline -2
 034A           L75:
 034A                   .dbline 0 ; func end
 034A 0895              ret
 034C                   .dbend
 034C                   .dbfunc e main_txdone _main_txdone fV
 034C           ;              i -> R20,R21
                        .even
 034C           _main_txdone::
 034C 0E940000          xcall push_gset1
 0350 2297              sbiw R28,2
 0352                   .dbline -1
 0352                   .dbline 165
 0352           ; }
 0352           ; void main_txdone(void)
 0352           ; {
 0352                   .dbline 167
 0352           ;   unsigned int i;
 0352           ;   D12_ReadLastTransactionStatus(5);
 0352 05E0              ldi R16,5
 0354 0E940000          xcall _D12_ReadLastTransactionStatus
 0358                   .dbline 168
 0358           ;   if(bEPPflags.bits.bulk_state==BULK_REQEST_TRANS)
 0358 80910800          lds R24,_bEPPflags+2
 035C 8770              andi R24,7
 035E 8330              cpi R24,3
 0360 09F0              breq X5
 0362 53C0              xjmp L77
 0364           X5:
 0364                   .dbline 169
 0364           ;   {
 0364                   .dbline 170
 0364           ;      i=ControlData.wLength-ControlData.wCount;
 0364 20900A00          lds R2,_ControlData+10
 0368 30900B00          lds R3,_ControlData+10+1
 036C 40910800          lds R20,_ControlData+8
 0370 50910900          lds R21,_ControlData+8+1
 0374 4219              sub R20,R2
 0376 5309              sbc R21,R3
 0378                   .dbline 171
 0378           ;      if(i>=EP2_PACKET_SIZE)
 0378 4034              cpi R20,64
 037A E0E0              ldi R30,0
 037C 5E07              cpc R21,R30
 037E 18F1              brlo L82
 0380                   .dbline 172
 0380           ;      {
 0380                   .dbline 173
 0380           ;         D12_CWriteEndpoint(5,EP2_PACKET_SIZE,ControlData.pCData+ControlData.wCount);
 0380 20900E00          lds R2,_ControlData+14
 0384 30900F00          lds R3,_ControlData+14+1
 0388 40900A00          lds R4,_ControlData+10
 038C 50900B00          lds R5,_ControlData+10+1
 0390 420C              add R4,R2
 0392 531C              adc R5,R3
 0394 5982              std y+1,R5
 0396 4882              std y+0,R4
 0398 20E4              ldi R18,64
 039A 30E0              ldi R19,0
 039C 05E0              ldi R16,5
 039E 10E0              ldi R17,0
 03A0 0E940000          xcall _D12_CWriteEndpoint
 03A4                   .dbline 174
 03A4           ;         ControlData.wCount+=EP2_PACKET_SIZE;
 03A4 80910A00          lds R24,_ControlData+10
 03A8 90910B00          lds R25,_ControlData+10+1
 03AC 805C              subi R24,192  ; offset = 64
 03AE 9F4F              sbci R25,255
 03B0 90930B00          sts _ControlData+10+1,R25
 03B4 80930A00          sts _ControlData+10,R24
 03B8                   .dbline 175
 03B8           ;         bEPPflags.bits.bulk_state=BULK_REQEST_TRANS;
 03B8 80910800          lds R24,_bEPPflags+2
 03BC 887F              andi R24,248
 03BE 8360              ori R24,3
 03C0 80930800          sts _bEPPflags+2,R24
 03C4                   .dbline 176
 03C4           ;     } 
 03C4 9AC0              xjmp L78
 03C6           L82:
 03C6                   .dbline 178
 03C6           ;       else
 03C6           ;     {
 03C6                   .dbline 179
 03C6           ;         D12_CWriteEndpoint(5,i,ControlData.pCData+ControlData.wCount);
 03C6 20900E00          lds R2,_ControlData+14
 03CA 30900F00          lds R3,_ControlData+14+1
 03CE 40900A00          lds R4,_ControlData+10
 03D2 50900B00          lds R5,_ControlData+10+1
 03D6 420C              add R4,R2
 03D8 531C              adc R5,R3
 03DA 5982              std y+1,R5
 03DC 4882              std y+0,R4
 03DE 9A01              movw R18,R20
 03E0 05E0              ldi R16,5
 03E2 10E0              ldi R17,0
 03E4 0E940000          xcall _D12_CWriteEndpoint
 03E8                   .dbline 180
 03E8           ;           ControlData.wCount+=i;
 03E8 20900A00          lds R2,_ControlData+10
 03EC 30900B00          lds R3,_ControlData+10+1
 03F0 240E              add R2,R20
 03F2 351E              adc R3,R21
 03F4 30920B00          sts _ControlData+10+1,R3
 03F8 20920A00          sts _ControlData+10,R2
 03FC                   .dbline 181
 03FC           ;         bEPPflags.bits.bulk_state=BULK_DATA_END;
 03FC 80910800          lds R24,_bEPPflags+2
 0400 887F              andi R24,248
 0402 8260              ori R24,2
 0404 80930800          sts _bEPPflags+2,R24
 0408                   .dbline 182
 0408           ;     } 
 0408                   .dbline 183
 0408           ;   }
 0408 78C0              xjmp L78
 040A           L77:
 040A                   .dbline 184
 040A           ;   else if(bEPPflags.bits.bulk_state==BULK_DATA_END)
 040A 80910800          lds R24,_bEPPflags+2
 040E 8770              andi R24,7
 0410 8230              cpi R24,2
 0412 19F4              brne L92
 0414                   .dbline 185
 0414           ;   {
 0414                   .dbline 186
 0414           ;     Bulk_CSWHandler();
 0414 0E940000          xcall _Bulk_CSWHandler
 0418                   .dbline 187
 0418           ;   } 
 0418 70C0              xjmp L93
 041A           L92:
 041A                   .dbline 188
 041A           ;   else if(bEPPflags.bits.bulk_state==BULK_DATA_TRANS)
 041A 80910800          lds R24,_bEPPflags+2
 041E 8770              andi R24,7
 0420 8130              cpi R24,1
 0422 09F0              breq X6
 0424 6AC0              xjmp L95
 0426           X6:
 0426                   .dbline 189
 0426           ;   {
 0426                   .dbline 190
 0426           ;       if(Bulk_Control_r.BufCount<448)//512-64=448
 0426 80910600          lds R24,_Bulk_Control_r+6
 042A 90910700          lds R25,_Bulk_Control_r+6+1
 042E 803C              cpi R24,192
 0430 E1E0              ldi R30,1
 0432 9E07              cpc R25,R30
 0434 A8F4              brsh L98
 0436                   .dbline 191
 0436           ;       {           
 0436                   .dbline 192
 0436           ;         Bulk_Control_r.BufCount+=64;
 0436 805C              subi R24,192  ; offset = 64
 0438 9F4F              sbci R25,255
 043A 90930700          sts _Bulk_Control_r+6+1,R25
 043E 80930600          sts _Bulk_Control_r+6,R24
 0442                   .dbline 193
 0442           ;           D12_WriteEndpoint(5,64,PageBuf+Bulk_Control_r.BufCount);
 0442 80E0              ldi R24,<_PageBuf
 0444 90E0              ldi R25,>_PageBuf
 0446 20900600          lds R2,_Bulk_Control_r+6
 044A 30900700          lds R3,_Bulk_Control_r+6+1
 044E 280E              add R2,R24
 0450 391E              adc R3,R25
 0452 3982              std y+1,R3
 0454 2882              std y+0,R2
 0456 20E4              ldi R18,64
 0458 05E0              ldi R16,5
 045A 0E940000          xcall _D12_WriteEndpoint
 045E                   .dbline 194
 045E           ;       }        
 045E 4DC0              xjmp L99
 0460           L98:
 0460                   .dbline 195
 0460           ;       else if(Bulk_Control_r.Transfer_Length>0)
 0460 20900000          lds R2,_Bulk_Control_r
 0464 30900100          lds R3,_Bulk_Control_r+1
 0468 2220              tst R2
 046A 19F4              brne X4
 046C 3320              tst R3
 046E 09F4              brne X7
 0470 42C0              xjmp L103
 0472           X7:
 0472           X4:
 0472                   .dbline 196
 0472           ;       {
 0472                   .dbline 197
 0472           ;            if(Bulk_Control_r.CurrentPage==32)
 0472 80910400          lds R24,_Bulk_Control_r+4
 0476 8032              cpi R24,32
 0478 61F4              brne L105
 047A                   .dbline 198
 047A           ;            {
 047A                   .dbline 199
 047A           ;              Bulk_Control_r.CurrentBlock++;
 047A 80910200          lds R24,_Bulk_Control_r+2
 047E 90910300          lds R25,_Bulk_Control_r+2+1
 0482 0196              adiw R24,1
 0484 90930300          sts _Bulk_Control_r+2+1,R25
 0488 80930200          sts _Bulk_Control_r+2,R24
 048C                   .dbline 200
 048C           ;              Bulk_Control_r.CurrentPage=0;
 048C 2224              clr R2
 048E 20920400          sts _Bulk_Control_r+4,R2
 0492                   .dbline 201
 0492           ;            }
 0492           L105:
 0492                   .dbline 202
 0492           ;            ReadPage(Bulk_Control_r.CurrentBlock,Bulk_Control_r.CurrentPage,PageBuf);
 0492 80E0              ldi R24,<_PageBuf
 0494 90E0              ldi R25,>_PageBuf
 0496 9983              std y+1,R25
 0498 8883              std y+0,R24
 049A 20910400          lds R18,_Bulk_Control_r+4
 049E 3327              clr R19
 04A0 00910200          lds R16,_Bulk_Control_r+2
 04A4 10910300          lds R17,_Bulk_Control_r+2+1
 04A8 0E940000          xcall _ReadPage
 04AC                   .dbline 203
 04AC           ;                Bulk_Control_r.CurrentPage++;
 04AC 80910400          lds R24,_Bulk_Control_r+4
 04B0 8F5F              subi R24,255    ; addi 1
 04B2 80930400          sts _Bulk_Control_r+4,R24
 04B6                   .dbline 204
 04B6           ;            Bulk_Control_r.Transfer_Length--;     
 04B6 80910000          lds R24,_Bulk_Control_r
 04BA 90910100          lds R25,_Bulk_Control_r+1
 04BE 0197              sbiw R24,1
 04C0 90930100          sts _Bulk_Control_r+1,R25
 04C4 80930000          sts _Bulk_Control_r,R24
 04C8                   .dbline 205
 04C8           ;            Bulk_Control_r.BufCount=0;
 04C8 2224              clr R2
 04CA 3324              clr R3
 04CC 30920700          sts _Bulk_Control_r+6+1,R3
 04D0 20920600          sts _Bulk_Control_r+6,R2
 04D4                   .dbline 206
 04D4           ;                bEPPflags.bits.bulk_state=BULK_DATA_TRANS;
 04D4 80910800          lds R24,_bEPPflags+2
 04D8 887F              andi R24,248
 04DA 8160              ori R24,1
 04DC 80930800          sts _bEPPflags+2,R24
 04E0                   .dbline 207
 04E0           ;                D12_WriteEndpoint(5,64,PageBuf+Bulk_Control_r.BufCount);                
 04E0 80E0              ldi R24,<_PageBuf
 04E2 90E0              ldi R25,>_PageBuf
 04E4 280E              add R2,R24
 04E6 391E              adc R3,R25
 04E8 3982              std y+1,R3
 04EA 2882              std y+0,R2
 04EC 20E4              ldi R18,64
 04EE 05E0              ldi R16,5
 04F0 0E940000          xcall _D12_WriteEndpoint
 04F4                   .dbline 208
 04F4           ;      }
 04F4 02C0              xjmp L104

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -