📄 isr.lis
字号:
0312 10C0 xjmp L64
0314 L63:
0314 .dbline 150
0314 ; else if(i==0)
0314 4030 cpi R20,0
0316 4507 cpc R20,R21
0318 69F4 brne L72
031A X3:
031A .dbline 151
031A ; {
031A .dbline 152
031A ; D12_WriteEndpoint(1,0,0);
031A 2224 clr R2
031C 3324 clr R3
031E 3982 std y+1,R3
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 .dbline 155
0334 ; }
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 ; void ep1_txdone(void)
033C ; {
033C .dbline 158
033C ; D12_ReadLastTransactionStatus(3);
033C 03E0 ldi R16,3
033E .dbline -2
033E .dbline 159
033E ; }
033E L74:
033E .dbline 0 ; func end
033E 0C940000 xjmp _D12_ReadLastTransactionStatus
0342 .dbend
0342 .dbfunc e ep1_rxdone _ep1_rxdone fV
.even
0342 _ep1_rxdone::
0342 .dbline -1
0342 .dbline 161
0342 ; void ep1_rxdone(void)
0342 ; {
0342 .dbline 162
0342 ; D12_ReadLastTransactionStatus(2);
0342 02E0 ldi R16,2
0344 .dbline -2
0344 .dbline 163
0344 ; }
0344 L75:
0344 .dbline 0 ; func end
0344 0C940000 xjmp _D12_ReadLastTransactionStatus
0348 .dbend
0348 .dbfunc e main_txdone _main_txdone fV
0348 ; i -> R20,R21
.even
0348 _main_txdone::
0348 0E940000 xcall push_gset1
034C 2297 sbiw R28,2
034E .dbline -1
034E .dbline 165
034E ; void main_txdone(void)
034E ; {
034E .dbline 167
034E ; unsigned int i;
034E ; D12_ReadLastTransactionStatus(5);
034E 05E0 ldi R16,5
0350 0E940000 xcall _D12_ReadLastTransactionStatus
0354 .dbline 168
0354 ; if(bEPPflags.bits.bulk_state==BULK_REQEST_TRANS)
0354 80910800 lds R24,_bEPPflags+2
0358 8770 andi R24,7
035A 8330 cpi R24,3
035C 09F0 breq X5
035E 53C0 xjmp L77
0360 X5:
0360 .dbline 169
0360 ; {
0360 .dbline 170
0360 ; i=ControlData.wLength-ControlData.wCount;
0360 20900A00 lds R2,_ControlData+10
0364 30900B00 lds R3,_ControlData+10+1
0368 40910800 lds R20,_ControlData+8
036C 50910900 lds R21,_ControlData+8+1
0370 4219 sub R20,R2
0372 5309 sbc R21,R3
0374 .dbline 171
0374 ; if(i>=EP2_PACKET_SIZE)
0374 4034 cpi R20,64
0376 E0E0 ldi R30,0
0378 5E07 cpc R21,R30
037A 18F1 brlo L82
037C .dbline 172
037C ; {
037C .dbline 173
037C ; D12_CWriteEndpoint(5,EP2_PACKET_SIZE,ControlData.pCData+ControlData.wCount);
037C 20900E00 lds R2,_ControlData+14
0380 30900F00 lds R3,_ControlData+14+1
0384 40900A00 lds R4,_ControlData+10
0388 50900B00 lds R5,_ControlData+10+1
038C 420C add R4,R2
038E 531C adc R5,R3
0390 5982 std y+1,R5
0392 4882 std y+0,R4
0394 20E4 ldi R18,64
0396 30E0 ldi R19,0
0398 05E0 ldi R16,5
039A 10E0 ldi R17,0
039C 0E940000 xcall _D12_CWriteEndpoint
03A0 .dbline 174
03A0 ; ControlData.wCount+=EP2_PACKET_SIZE;
03A0 80910A00 lds R24,_ControlData+10
03A4 90910B00 lds R25,_ControlData+10+1
03A8 805C subi R24,192 ; offset = 64
03AA 9F4F sbci R25,255
03AC 90930B00 sts _ControlData+10+1,R25
03B0 80930A00 sts _ControlData+10,R24
03B4 .dbline 175
03B4 ; bEPPflags.bits.bulk_state=BULK_REQEST_TRANS;
03B4 80910800 lds R24,_bEPPflags+2
03B8 887F andi R24,248
03BA 8360 ori R24,3
03BC 80930800 sts _bEPPflags+2,R24
03C0 .dbline 176
03C0 ; }
03C0 9AC0 xjmp L78
03C2 L82:
03C2 .dbline 178
03C2 ; else
03C2 ; {
03C2 .dbline 179
03C2 ; D12_CWriteEndpoint(5,i,ControlData.pCData+ControlData.wCount);
03C2 20900E00 lds R2,_ControlData+14
03C6 30900F00 lds R3,_ControlData+14+1
03CA 40900A00 lds R4,_ControlData+10
03CE 50900B00 lds R5,_ControlData+10+1
03D2 420C add R4,R2
03D4 531C adc R5,R3
03D6 5982 std y+1,R5
03D8 4882 std y+0,R4
03DA 9A01 movw R18,R20
03DC 05E0 ldi R16,5
03DE 10E0 ldi R17,0
03E0 0E940000 xcall _D12_CWriteEndpoint
03E4 .dbline 180
03E4 ; ControlData.wCount+=i;
03E4 20900A00 lds R2,_ControlData+10
03E8 30900B00 lds R3,_ControlData+10+1
03EC 240E add R2,R20
03EE 351E adc R3,R21
03F0 30920B00 sts _ControlData+10+1,R3
03F4 20920A00 sts _ControlData+10,R2
03F8 .dbline 181
03F8 ; bEPPflags.bits.bulk_state=BULK_DATA_END;
03F8 80910800 lds R24,_bEPPflags+2
03FC 887F andi R24,248
03FE 8260 ori R24,2
0400 80930800 sts _bEPPflags+2,R24
0404 .dbline 182
0404 ; }
0404 .dbline 183
0404 ; }
0404 78C0 xjmp L78
0406 L77:
0406 .dbline 184
0406 ; else if(bEPPflags.bits.bulk_state==BULK_DATA_END)
0406 80910800 lds R24,_bEPPflags+2
040A 8770 andi R24,7
040C 8230 cpi R24,2
040E 19F4 brne L92
0410 .dbline 185
0410 ; {
0410 .dbline 186
0410 ; Bulk_CSWHandler();
0410 0E940000 xcall _Bulk_CSWHandler
0414 .dbline 187
0414 ; }
0414 70C0 xjmp L93
0416 L92:
0416 .dbline 188
0416 ; else if(bEPPflags.bits.bulk_state==BULK_DATA_TRANS)
0416 80910800 lds R24,_bEPPflags+2
041A 8770 andi R24,7
041C 8130 cpi R24,1
041E 09F0 breq X6
0420 6AC0 xjmp L95
0422 X6:
0422 .dbline 189
0422 ; {
0422 .dbline 190
0422 ; if(Bulk_Control_r.BufCount<448)//512-64=448
0422 80910600 lds R24,_Bulk_Control_r+6
0426 90910700 lds R25,_Bulk_Control_r+6+1
042A 803C cpi R24,192
042C E1E0 ldi R30,1
042E 9E07 cpc R25,R30
0430 A8F4 brsh L98
0432 .dbline 191
0432 ; {
0432 .dbline 192
0432 ; Bulk_Control_r.BufCount+=64;
0432 805C subi R24,192 ; offset = 64
0434 9F4F sbci R25,255
0436 90930700 sts _Bulk_Control_r+6+1,R25
043A 80930600 sts _Bulk_Control_r+6,R24
043E .dbline 193
043E ; D12_WriteEndpoint(5,64,PageBuf+Bulk_Control_r.BufCount);
043E 80E0 ldi R24,<_PageBuf
0440 90E0 ldi R25,>_PageBuf
0442 20900600 lds R2,_Bulk_Control_r+6
0446 30900700 lds R3,_Bulk_Control_r+6+1
044A 280E add R2,R24
044C 391E adc R3,R25
044E 3982 std y+1,R3
0450 2882 std y+0,R2
0452 20E4 ldi R18,64
0454 05E0 ldi R16,5
0456 0E940000 xcall _D12_WriteEndpoint
045A .dbline 194
045A ; }
045A 4DC0 xjmp L99
045C L98:
045C .dbline 195
045C ; else if(Bulk_Control_r.Transfer_Length>0)
045C 20900000 lds R2,_Bulk_Control_r
0460 30900100 lds R3,_Bulk_Control_r+1
0464 2220 tst R2
0466 19F4 brne X4
0468 3320 tst R3
046A 09F4 brne X7
046C 42C0 xjmp L103
046E X7:
046E X4:
046E .dbline 196
046E ; {
046E .dbline 197
046E ; if(Bulk_Control_r.CurrentPage==32)
046E 80910400 lds R24,_Bulk_Control_r+4
0472 8032 cpi R24,32
0474 61F4 brne L105
0476 .dbline 198
0476 ; {
0476 .dbline 199
0476 ; Bulk_Control_r.CurrentBlock++;
0476 80910200 lds R24,_Bulk_Control_r+2
047A 90910300 lds R25,_Bulk_Control_r+2+1
047E 0196 adiw R24,1
0480 90930300 sts _Bulk_Control_r+2+1,R25
0484 80930200 sts _Bulk_Control_r+2,R24
0488 .dbline 200
0488 ; Bulk_Control_r.CurrentPage=0;
0488 2224 clr R2
048A 20920400 sts _Bulk_Control_r+4,R2
048E .dbline 201
048E ; }
048E L105:
048E .dbline 202
048E ; ReadPage(Bulk_Control_r.CurrentBlock,Bulk_Control_r.CurrentPage,PageBuf);
048E 80E0 ldi R24,<_PageBuf
0490 90E0 ldi R25,>_PageBuf
0492 9983 std y+1,R25
0494 8883 std y+0,R24
0496 20910400 lds R18,_Bulk_Control_r+4
049A 3327 clr R19
049C 00910200 lds R16,_Bulk_Control_r+2
04A0 10910300 lds R17,_Bulk_Control_r+2+1
04A4 0E940000 xcall _ReadPage
04A8 .dbline 203
04A8 ; Bulk_Control_r.CurrentPage++;
04A8 80910400 lds R24,_Bulk_Control_r+4
04AC 8F5F subi R24,255 ; addi 1
04AE 80930400 sts _Bulk_Control_r+4,R24
04B2 .dbline 204
04B2 ; Bulk_Control_r.Transfer_Length--;
04B2 80910000 lds R24,_Bulk_Control_r
04B6 90910100 lds R25,_Bulk_Control_r+1
04BA 0197 sbiw R24,1
04BC 90930100 sts _Bulk_Control_r+1,R25
04C0 80930000 sts _Bulk_Control_r,R24
04C4 .dbline 205
04C4 ; Bulk_Control_r.BufCount=0;
04C4 2224 clr R2
04C6 3324 clr R3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -