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

📄 isr.lis

📁 采用Atmeag162单片机来制作的U盘程序源码
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 04C8 30920700          sts _Bulk_Control_r+6+1,R3
 04CC 20920600          sts _Bulk_Control_r+6,R2
 04D0                   .dbline 206
 04D0           ;                bEPPflags.bits.bulk_state=BULK_DATA_TRANS;
 04D0 80910800          lds R24,_bEPPflags+2
 04D4 887F              andi R24,248
 04D6 8160              ori R24,1
 04D8 80930800          sts _bEPPflags+2,R24
 04DC                   .dbline 207
 04DC           ;                D12_WriteEndpoint(5,64,PageBuf+Bulk_Control_r.BufCount);                
 04DC 80E0              ldi R24,<_PageBuf
 04DE 90E0              ldi R25,>_PageBuf
 04E0 280E              add R2,R24
 04E2 391E              adc R3,R25
 04E4 3982              std y+1,R3
 04E6 2882              std y+0,R2
 04E8 20E4              ldi R18,64
 04EA 05E0              ldi R16,5
 04EC 0E940000          xcall _D12_WriteEndpoint
 04F0                   .dbline 208
 04F0           ;      }
 04F0 02C0              xjmp L104
 04F2           L103:
 04F2                   .dbline 210
 04F2           ;      else
 04F2           ;        Bulk_CSWHandler();   
 04F2 0E940000          xcall _Bulk_CSWHandler
 04F6           L104:
 04F6           L99:
 04F6                   .dbline 211
 04F6           ;   }    
 04F6           L95:
 04F6           L93:
 04F6           L78:
 04F6                   .dbline -2
 04F6                   .dbline 212
 04F6           ; }
 04F6           L76:
 04F6 2296              adiw R28,2
 04F8 0E940000          xcall pop_gset1
 04FC                   .dbline 0 ; func end
 04FC 0895              ret
 04FE                   .dbsym r i 20 i
 04FE                   .dbend
 04FE                   .dbfunc e main_rxdone _main_rxdone fV
 04FE           ;            len -> R20
 04FE           ;              i -> R20
                        .even
 04FE           _main_rxdone::
 04FE 0E940000          xcall push_gset1
 0502 2297              sbiw R28,2
 0504                   .dbline -1
 0504                   .dbline 214
 0504           ; void main_rxdone(void)
 0504           ; {
 0504                   .dbline 216
 0504           ;   unsigned char len,i;
 0504           ;   D12_ReadLastTransactionStatus(4);
 0504 04E0              ldi R16,4
 0506 0E940000          xcall _D12_ReadLastTransactionStatus
 050A                   .dbline 217
 050A           ;   if(bEPPflags.bits.bulk_state==BULK_IDLE)         
 050A 80910800          lds R24,_bEPPflags+2
 050E 8770              andi R24,7
 0510 19F4              brne L117
 0512                   .dbline 218
 0512           ;        Bulk_CBWHandler();
 0512 0E940000          xcall _Bulk_CBWHandler
 0516 B0C0              xjmp L118
 0518           L117:
 0518                   .dbline 219
 0518           ;   else if(bEPPflags.bits.bulk_state==BULK_DATA_RECIEVE)
 0518 80910800          lds R24,_bEPPflags+2
 051C 8770              andi R24,7
 051E 8430              cpi R24,4
 0520 09F0              breq X10
 0522 AAC0              xjmp L120
 0524           X10:
 0524                   .dbline 220
 0524           ;   {
 0524                   .dbline 221
 0524           ;       len=D12_ReadEndpoint(4,64,PageBuf+Bulk_Control_w.BufCount);
 0524 80E0              ldi R24,<_PageBuf
 0526 90E0              ldi R25,>_PageBuf
 0528 20900600          lds R2,_Bulk_Control_w+6
 052C 30900700          lds R3,_Bulk_Control_w+6+1
 0530 280E              add R2,R24
 0532 391E              adc R3,R25
 0534 3982              std y+1,R3
 0536 2882              std y+0,R2
 0538 20E4              ldi R18,64
 053A 04E0              ldi R16,4
 053C 0E940000          xcall _D12_ReadEndpoint
 0540 402F              mov R20,R16
 0542                   .dbline 222
 0542           ;         Bulk_Control_w.BufCount+=len;
 0542 242E              mov R2,R20
 0544 3324              clr R3
 0546 40900600          lds R4,_Bulk_Control_w+6
 054A 50900700          lds R5,_Bulk_Control_w+6+1
 054E 420C              add R4,R2
 0550 531C              adc R5,R3
 0552 50920700          sts _Bulk_Control_w+6+1,R5
 0556 40920600          sts _Bulk_Control_w+6,R4
 055A                   .dbline 223
 055A           ;         if(Bulk_Control_w.BufCount>=448)
 055A C201              movw R24,R4
 055C 803C              cpi R24,192
 055E E1E0              ldi R30,1
 0560 9E07              cpc R25,R30
 0562 C0F0              brlo L125
 0564                   .dbline 224
 0564           ;         {
 0564                   .dbline 225
 0564           ;          len=D12_ReadEndpoint(4,64,PageBuf+Bulk_Control_w.BufCount);
 0564 80E0              ldi R24,<_PageBuf
 0566 90E0              ldi R25,>_PageBuf
 0568 1201              movw R2,R4
 056A 280E              add R2,R24
 056C 391E              adc R3,R25
 056E 3982              std y+1,R3
 0570 2882              std y+0,R2
 0572 20E4              ldi R18,64
 0574 04E0              ldi R16,4
 0576 0E940000          xcall _D12_ReadEndpoint
 057A 402F              mov R20,R16
 057C                   .dbline 226
 057C           ;                Bulk_Control_w.BufCount+=len;            
 057C 242E              mov R2,R20
 057E 3324              clr R3
 0580 40900600          lds R4,_Bulk_Control_w+6
 0584 50900700          lds R5,_Bulk_Control_w+6+1
 0588 420C              add R4,R2
 058A 531C              adc R5,R3
 058C 50920700          sts _Bulk_Control_w+6+1,R5
 0590 40920600          sts _Bulk_Control_w+6,R4
 0594                   .dbline 227
 0594           ;         } 
 0594           L125:
 0594                   .dbline 228
 0594           ;         if(Bulk_Control_w.BufCount>=512)      
 0594 80910600          lds R24,_Bulk_Control_w+6
 0598 90910700          lds R25,_Bulk_Control_w+6+1
 059C 8030              cpi R24,0
 059E E2E0              ldi R30,2
 05A0 9E07              cpc R25,R30
 05A2 08F1              brlo L130
 05A4                   .dbline 229
 05A4           ;       {
 05A4                   .dbline 230
 05A4           ;           WritePage(Bulk_Control_w.CurrentBlock,Bulk_Control_w.CurrentPage,PageBuf);
 05A4 80E0              ldi R24,<_PageBuf
 05A6 90E0              ldi R25,>_PageBuf
 05A8 9983              std y+1,R25
 05AA 8883              std y+0,R24
 05AC 20910400          lds R18,_Bulk_Control_w+4
 05B0 3327              clr R19
 05B2 00910200          lds R16,_Bulk_Control_w+2
 05B6 10910300          lds R17,_Bulk_Control_w+2+1
 05BA 0E940000          xcall _WritePage
 05BE                   .dbline 231
 05BE           ;               Bulk_Control_w.CurrentPage++;
 05BE 80910400          lds R24,_Bulk_Control_w+4
 05C2 8F5F              subi R24,255    ; addi 1
 05C4 80930400          sts _Bulk_Control_w+4,R24
 05C8                   .dbline 232
 05C8           ;               Bulk_Control_w.Transfer_Length--;
 05C8 80910000          lds R24,_Bulk_Control_w
 05CC 90910100          lds R25,_Bulk_Control_w+1
 05D0 0197              sbiw R24,1
 05D2 90930100          sts _Bulk_Control_w+1,R25
 05D6 80930000          sts _Bulk_Control_w,R24
 05DA                   .dbline 233
 05DA           ;               Bulk_Control_w.BufCount=0;                       
 05DA 2224              clr R2
 05DC 3324              clr R3
 05DE 30920700          sts _Bulk_Control_w+6+1,R3
 05E2 20920600          sts _Bulk_Control_w+6,R2
 05E6                   .dbline 234
 05E6           ;         }      
 05E6           L130:
 05E6                   .dbline 235
 05E6           ;         if((Bulk_Control_w.Transfer_Length>0)&&(Bulk_Control_w.CurrentPage==32))
 05E6 20900000          lds R2,_Bulk_Control_w
 05EA 30900100          lds R3,_Bulk_Control_w+1
 05EE 2220              tst R2
 05F0 11F4              brne X8
 05F2 3320              tst R3
 05F4 D9F0              breq L137
 05F6           X8:
 05F6 80910400          lds R24,_Bulk_Control_w+4
 05FA 8032              cpi R24,32
 05FC B9F4              brne L137
 05FE                   .dbline 236
 05FE           ;         {
 05FE                   .dbline 237
 05FE           ;               Bulk_Control_w.CurrentBlock++;
 05FE 80910200          lds R24,_Bulk_Control_w+2
 0602 90910300          lds R25,_Bulk_Control_w+2+1
 0606 0196              adiw R24,1
 0608 90930300          sts _Bulk_Control_w+2+1,R25
 060C 80930200          sts _Bulk_Control_w+2,R24
 0610                   .dbline 238
 0610           ;               Bulk_Control_w.CurrentPage=0;
 0610 2224              clr R2
 0612 20920400          sts _Bulk_Control_w+4,R2
 0616                   .dbline 239
 0616           ;               Bulk_Control_w.BeginPage=0;
 0616 20920500          sts _Bulk_Control_w+5,R2
 061A                   .dbline 240
 061A           ;           Bulk_Control_w.BufCount=0;
 061A 3324              clr R3
 061C 30920700          sts _Bulk_Control_w+6+1,R3
 0620 20920600          sts _Bulk_Control_w+6,R2
 0624                   .dbline 241
 0624           ;               Erase_Cluster(Bulk_Control_w.CurrentBlock);             
 0624 8C01              movw R16,R24
 0626 0E940000          xcall _Erase_Cluster
 062A                   .dbline 242
 062A           ;         } 
 062A 26C0              xjmp L138
 062C           L137:
 062C                   .dbline 243
 062C           ;         else if(Bulk_Control_w.Transfer_Length==0)
 062C 20900000          lds R2,_Bulk_Control_w
 0630 30900100          lds R3,_Bulk_Control_w+1
 0634 2220              tst R2
 0636 01F5              brne L145
 0638 3320              tst R3
 063A F1F4              brne L145
 063C           X9:
 063C                   .dbline 244
 063C           ;         {
 063C                   .dbline 245
 063C           ;               for(i=Bulk_Control_w.CurrentPage;i<32;i++)
 063C 40910400          lds R20,_Bulk_Control_w+4
 0640 17C0              xjmp L150
 0642           L147:
 0642                   .dbline 246
 0642                   .dbline 247
 0642 80E0              ldi R24,<_PageBuf
 0644 90E0              ldi R25,>_PageBuf
 0646 9983              std y+1,R25
 0648 8883              std y+0,R24
 064A 242F              mov R18,R20
 064C 3327              clr R19
 064E 0FEF              ldi R16,2047
 0650 17E0              ldi R17,7
 0652 0E940000          xcall _ReadPage
 0656                   .dbline 248
 0656 80E0              ldi R24,<_PageBuf
 0658 90E0              ldi R25,>_PageBuf
 065A 9983              std y+1,R25
 065C 8883              std y+0,R24
 065E 242F              mov R18,R20
 0660 3327              clr R19
 0662 00910200          lds R16,_Bulk_Control_w+2
 0666 10910300          lds R17,_Bulk_Control_w+2+1
 066A 0E940000          xcall _WritePage
 066E                   .dbline 249
 066E           L148:
 066E                   .dbline 245
 066E 4395              inc R20
 0670           L150:
 0670                   .dbline 245
 0670 4032              cpi R20,32
 0672 38F3              brlo L147
 0674                   .dbline 250
 0674           ;               {
 0674           ;                 ReadPage(CANCEL_BLOCK,i,PageBuf);
 0674           ;                 WritePage(Bulk_Control_w.CurrentBlock,i,PageBuf);
 0674           ;               }
 0674           ;               Bulk_CSWHandler();
 0674 0E940000          xcall _Bulk_CSWHandler
 0678                   .dbline 251
 0678           ;        }
 0678           L145:
 0678           L138:
 0678                   .dbline 252
 0678           ;   }                      
 0678           L120:
 0678           L118:
 0678                   .dbline -2
 0678                   .dbline 253
 0678           ; }
 0678           L116:
 0678 2296              adiw R28,2
 067A 0E940000          xcall pop_gset1
 067E                   .dbline 0 ; func end
 067E 0895              ret
 0680                   .dbsym r len 20 c
 0680                   .dbsym r i 20 c
 0680                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\AvrUSB\ISR.C
 0000           _ioRequest::
 0000                   .blkb 6
 0006                   .dbsym e ioRequest _ioRequest X
 0006           _bEPPflags::
 0006                   .blkb 3
 0009                   .dbsym e bEPPflags _bEPPflags X

⌨️ 快捷键说明

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