📄 isr.lis
字号:
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 + -