📄 isr.lis
字号:
04F6 L103:
04F6 .dbline 210
04F6 ; else
04F6 ; Bulk_CSWHandler();
04F6 0E940000 xcall _Bulk_CSWHandler
04FA L104:
04FA L99:
04FA .dbline 211
04FA ; }
04FA L95:
04FA L93:
04FA L78:
04FA .dbline -2
04FA L76:
04FA 2296 adiw R28,2
04FC 0E940000 xcall pop_gset1
0500 .dbline 0 ; func end
0500 0895 ret
0502 .dbsym r i 20 i
0502 .dbend
0502 .dbfunc e main_rxdone _main_rxdone fV
0502 ; len -> R20
0502 ; i -> R20
.even
0502 _main_rxdone::
0502 0E940000 xcall push_gset1
0506 2297 sbiw R28,2
0508 .dbline -1
0508 .dbline 214
0508 ; }
0508 ; void main_rxdone(void)
0508 ; {
0508 .dbline 216
0508 ; unsigned char len,i;
0508 ; D12_ReadLastTransactionStatus(4);
0508 04E0 ldi R16,4
050A 0E940000 xcall _D12_ReadLastTransactionStatus
050E .dbline 217
050E ; if(bEPPflags.bits.bulk_state==BULK_IDLE)
050E 80910800 lds R24,_bEPPflags+2
0512 8770 andi R24,7
0514 19F4 brne L117
0516 .dbline 218
0516 ; Bulk_CBWHandler();
0516 0E940000 xcall _Bulk_CBWHandler
051A B0C0 xjmp L118
051C L117:
051C .dbline 219
051C ; else if(bEPPflags.bits.bulk_state==BULK_DATA_RECIEVE)
051C 80910800 lds R24,_bEPPflags+2
0520 8770 andi R24,7
0522 8430 cpi R24,4
0524 09F0 breq X10
0526 AAC0 xjmp L120
0528 X10:
0528 .dbline 220
0528 ; {
0528 .dbline 221
0528 ; len=D12_ReadEndpoint(4,64,PageBuf+Bulk_Control_w.BufCount);
0528 80E0 ldi R24,<_PageBuf
052A 90E0 ldi R25,>_PageBuf
052C 20900600 lds R2,_Bulk_Control_w+6
0530 30900700 lds R3,_Bulk_Control_w+6+1
0534 280E add R2,R24
0536 391E adc R3,R25
0538 3982 std y+1,R3
053A 2882 std y+0,R2
053C 20E4 ldi R18,64
053E 04E0 ldi R16,4
0540 0E940000 xcall _D12_ReadEndpoint
0544 402F mov R20,R16
0546 .dbline 222
0546 ; Bulk_Control_w.BufCount+=len;
0546 242E mov R2,R20
0548 3324 clr R3
054A 40900600 lds R4,_Bulk_Control_w+6
054E 50900700 lds R5,_Bulk_Control_w+6+1
0552 420C add R4,R2
0554 531C adc R5,R3
0556 50920700 sts _Bulk_Control_w+6+1,R5
055A 40920600 sts _Bulk_Control_w+6,R4
055E .dbline 223
055E ; if(Bulk_Control_w.BufCount>=448)
055E C201 movw R24,R4
0560 803C cpi R24,192
0562 E1E0 ldi R30,1
0564 9E07 cpc R25,R30
0566 C0F0 brlo L125
0568 .dbline 224
0568 ; {
0568 .dbline 225
0568 ; len=D12_ReadEndpoint(4,64,PageBuf+Bulk_Control_w.BufCount);
0568 80E0 ldi R24,<_PageBuf
056A 90E0 ldi R25,>_PageBuf
056C 1201 movw R2,R4
056E 280E add R2,R24
0570 391E adc R3,R25
0572 3982 std y+1,R3
0574 2882 std y+0,R2
0576 20E4 ldi R18,64
0578 04E0 ldi R16,4
057A 0E940000 xcall _D12_ReadEndpoint
057E 402F mov R20,R16
0580 .dbline 226
0580 ; Bulk_Control_w.BufCount+=len;
0580 242E mov R2,R20
0582 3324 clr R3
0584 40900600 lds R4,_Bulk_Control_w+6
0588 50900700 lds R5,_Bulk_Control_w+6+1
058C 420C add R4,R2
058E 531C adc R5,R3
0590 50920700 sts _Bulk_Control_w+6+1,R5
0594 40920600 sts _Bulk_Control_w+6,R4
0598 .dbline 227
0598 ; }
0598 L125:
0598 .dbline 228
0598 ; if(Bulk_Control_w.BufCount>=512)
0598 80910600 lds R24,_Bulk_Control_w+6
059C 90910700 lds R25,_Bulk_Control_w+6+1
05A0 8030 cpi R24,0
05A2 E2E0 ldi R30,2
05A4 9E07 cpc R25,R30
05A6 08F1 brlo L130
05A8 .dbline 229
05A8 ; {
05A8 .dbline 230
05A8 ; WritePage(Bulk_Control_w.CurrentBlock,Bulk_Control_w.CurrentPage,PageBuf);
05A8 80E0 ldi R24,<_PageBuf
05AA 90E0 ldi R25,>_PageBuf
05AC 9983 std y+1,R25
05AE 8883 std y+0,R24
05B0 20910400 lds R18,_Bulk_Control_w+4
05B4 3327 clr R19
05B6 00910200 lds R16,_Bulk_Control_w+2
05BA 10910300 lds R17,_Bulk_Control_w+2+1
05BE 0E940000 xcall _WritePage
05C2 .dbline 231
05C2 ; Bulk_Control_w.CurrentPage++;
05C2 80910400 lds R24,_Bulk_Control_w+4
05C6 8F5F subi R24,255 ; addi 1
05C8 80930400 sts _Bulk_Control_w+4,R24
05CC .dbline 232
05CC ; Bulk_Control_w.Transfer_Length--;
05CC 80910000 lds R24,_Bulk_Control_w
05D0 90910100 lds R25,_Bulk_Control_w+1
05D4 0197 sbiw R24,1
05D6 90930100 sts _Bulk_Control_w+1,R25
05DA 80930000 sts _Bulk_Control_w,R24
05DE .dbline 233
05DE ; Bulk_Control_w.BufCount=0;
05DE 2224 clr R2
05E0 3324 clr R3
05E2 30920700 sts _Bulk_Control_w+6+1,R3
05E6 20920600 sts _Bulk_Control_w+6,R2
05EA .dbline 234
05EA ; }
05EA L130:
05EA .dbline 235
05EA ; if((Bulk_Control_w.Transfer_Length>0)&&(Bulk_Control_w.CurrentPage==32))
05EA 20900000 lds R2,_Bulk_Control_w
05EE 30900100 lds R3,_Bulk_Control_w+1
05F2 2220 tst R2
05F4 11F4 brne X8
05F6 3320 tst R3
05F8 D9F0 breq L137
05FA X8:
05FA 80910400 lds R24,_Bulk_Control_w+4
05FE 8032 cpi R24,32
0600 B9F4 brne L137
0602 .dbline 236
0602 ; {
0602 .dbline 237
0602 ; Bulk_Control_w.CurrentBlock++;
0602 80910200 lds R24,_Bulk_Control_w+2
0606 90910300 lds R25,_Bulk_Control_w+2+1
060A 0196 adiw R24,1
060C 90930300 sts _Bulk_Control_w+2+1,R25
0610 80930200 sts _Bulk_Control_w+2,R24
0614 .dbline 238
0614 ; Bulk_Control_w.CurrentPage=0;
0614 2224 clr R2
0616 20920400 sts _Bulk_Control_w+4,R2
061A .dbline 239
061A ; Bulk_Control_w.BeginPage=0;
061A 20920500 sts _Bulk_Control_w+5,R2
061E .dbline 240
061E ; Bulk_Control_w.BufCount=0;
061E 3324 clr R3
0620 30920700 sts _Bulk_Control_w+6+1,R3
0624 20920600 sts _Bulk_Control_w+6,R2
0628 .dbline 241
0628 ; Erase_Cluster(Bulk_Control_w.CurrentBlock);
0628 8C01 movw R16,R24
062A 0E940000 xcall _Erase_Cluster
062E .dbline 242
062E ; }
062E 26C0 xjmp L138
0630 L137:
0630 .dbline 243
0630 ; else if(Bulk_Control_w.Transfer_Length==0)
0630 20900000 lds R2,_Bulk_Control_w
0634 30900100 lds R3,_Bulk_Control_w+1
0638 2220 tst R2
063A 01F5 brne L145
063C 3320 tst R3
063E F1F4 brne L145
0640 X9:
0640 .dbline 244
0640 ; {
0640 .dbline 245
0640 ; for(i=Bulk_Control_w.CurrentPage;i<32;i++)
0640 40910400 lds R20,_Bulk_Control_w+4
0644 17C0 xjmp L150
0646 L147:
0646 .dbline 246
0646 .dbline 247
0646 80E0 ldi R24,<_PageBuf
0648 90E0 ldi R25,>_PageBuf
064A 9983 std y+1,R25
064C 8883 std y+0,R24
064E 242F mov R18,R20
0650 3327 clr R19
0652 0FEF ldi R16,2047
0654 17E0 ldi R17,7
0656 0E940000 xcall _ReadPage
065A .dbline 248
065A 80E0 ldi R24,<_PageBuf
065C 90E0 ldi R25,>_PageBuf
065E 9983 std y+1,R25
0660 8883 std y+0,R24
0662 242F mov R18,R20
0664 3327 clr R19
0666 00910200 lds R16,_Bulk_Control_w+2
066A 10910300 lds R17,_Bulk_Control_w+2+1
066E 0E940000 xcall _WritePage
0672 .dbline 249
0672 L148:
0672 .dbline 245
0672 4395 inc R20
0674 L150:
0674 .dbline 245
0674 4032 cpi R20,32
0676 38F3 brlo L147
0678 .dbline 250
0678 ; {
0678 ; ReadPage(CANCEL_BLOCK,i,PageBuf);
0678 ; WritePage(Bulk_Control_w.CurrentBlock,i,PageBuf);
0678 ; }
0678 ; Bulk_CSWHandler();
0678 0E940000 xcall _Bulk_CSWHandler
067C .dbline 251
067C ; }
067C L145:
067C L138:
067C .dbline 252
067C ; }
067C L120:
067C L118:
067C .dbline -2
067C L116:
067C 2296 adiw R28,2
067E 0E940000 xcall pop_gset1
0682 .dbline 0 ; func end
0682 0895 ret
0684 .dbsym r len 20 c
0684 .dbsym r i 20 c
0684 .dbend
.area bss(ram, con, rel)
0000 .dbfile J:\PDIUSBD12-Materials\富昌\优盘5.0\ISR.C
0000 _ioRequest::
0000 .blkb 6
0006 .dbstruct 0 6 _IO_REQUEST
0006 .dbfield 0 uAddressL s
0006 .dbfield 2 bAddressH c
0006 .dbfield 3 uSize s
0006 .dbfield 5 bCommand c
0006 .dbend
0006 .dbsym e ioRequest _ioRequest S[_IO_REQUEST]
0006 _bEPPflags::
0006 .blkb 3
0009 .dbstruct 0 3 _flags
0009 .dbfield 0 bus_reset F[0:1]
0009 .dbfield 0 suspend F[1:1]
0009 .dbfield 0 setup_packet F[2:1]
0009 .dbfield 0 remote_wakeup F[3:1]
0009 .dbfield 0 in_isr F[4:1]
0009 .dbfield 0 control_state F[5:2]
0009 .dbfield 0 configuration F[7:1]
0009 .dbfield 0 ep1_rxdone F[8:1]
0009 .dbfield 0 ep1_txdone F[9:1]
0009 .dbfield 0 ep1buf_full F[10:1]
0009 .dbfield 0 rom_state F[11:1]
0009 .dbfield 0 power_down F[12:1]
0009 .dbfield 0 main_rxdone F[13:1]
0009 .dbfield 0 main_txdone F[14:1]
0009 .dbfield 0 mainbuf_full F[15:1]
0009 .dbfield 2 bulk_state F[0:3]
0009 .dbfield 2 reserved F[3:5]
0009 .dbend
0009 .dbunion 0 3 _epp_flags
0009 .dbfield 0 bits S[_flags]
0009 .dbfield 0 value s
0009 .dbend
0009 .dbsym e bEPPflags _bEPPflags S[_epp_flags]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -