📄 usb_istr.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 938] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\usb_istr.o --depend=.\Obj\usb_istr.d --device=DARMSTM --apcs=interwork -O3 -I.\Code\FATSystem\INC -I.\Code\Library\INC -I.\Code\SDCard\INC -I.\Code\Speaker\INC -I.\Code\System\INC -I.\Code\USBMassStorage\INC -I.\Code\User\INC -I.\Code\VS1003\INC -ID:\Keil\ARM\INC\ST\STM32F10x --omf_browse=.\Obj\usb_istr.crf Code\USBMassStorage\SRC\usb_istr.c]
THUMB
AREA ||i.USB_Istr||, CODE, READONLY, ALIGN=2
USB_Istr PROC
;;;63 void USB_Istr(void)
;;;64 {
000000 b570 PUSH {r4-r6,lr}
;;;65
;;;66 wIstr = _GetISTR();
000002 490e LDR r1,|L1.60|
000004 f8d10c44 LDR r0,[r1,#0xc44]
000008 4c0d LDR r4,|L1.64|
00000a 8020 STRH r0,[r4,#0] ; wIstr
;;;67
;;;68 #if (IMR_MSK & ISTR_RESET)
;;;69 if (wIstr & ISTR_RESET & wInterrupt_Mask)
00000c 8820 LDRH r0,[r4,#0] ; wIstr
00000e 4d0d LDR r5,|L1.68|
000010 882a LDRH r2,[r5,#0] ; wInterrupt_Mask
000012 4010 ANDS r0,r0,r2
000014 0540 LSLS r0,r0,#21
000016 d506 BPL |L1.38|
;;;70 {
;;;71 _SetISTR((u16)CLR_RESET);
000018 f64f30ff MOV r0,#0xfbff
00001c f8c10c44 STR r0,[r1,#0xc44]
;;;72 Device_Property.Reset();
000020 4809 LDR r0,|L1.72|
000022 6840 LDR r0,[r0,#4] ; Device_Property
000024 4780 BLX r0
|L1.38|
;;;73 #ifdef RESET_CALLBACK
;;;74 RESET_Callback();
;;;75 #endif
;;;76 }
;;;77 #endif
;;;78 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;79 #if (IMR_MSK & ISTR_DOVR)
;;;80 if (wIstr & ISTR_DOVR & wInterrupt_Mask)
;;;81 {
;;;82 _SetISTR((u16)CLR_DOVR);
;;;83 #ifdef DOVR_CALLBACK
;;;84 DOVR_Callback();
;;;85 #endif
;;;86 }
;;;87 #endif
;;;88 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;89 #if (IMR_MSK & ISTR_ERR)
;;;90 if (wIstr & ISTR_ERR & wInterrupt_Mask)
;;;91 {
;;;92 _SetISTR((u16)CLR_ERR);
;;;93 #ifdef ERR_CALLBACK
;;;94 ERR_Callback();
;;;95 #endif
;;;96 }
;;;97 #endif
;;;98 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;99 #if (IMR_MSK & ISTR_WKUP)
;;;100 if (wIstr & ISTR_WKUP & wInterrupt_Mask)
;;;101 {
;;;102 _SetISTR((u16)CLR_WKUP);
;;;103 Resume(RESUME_EXTERNAL);
;;;104 #ifdef WKUP_CALLBACK
;;;105 WKUP_Callback();
;;;106 #endif
;;;107 }
;;;108 #endif
;;;109 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;110 #if (IMR_MSK & ISTR_SUSP)
;;;111 if (wIstr & ISTR_SUSP & wInterrupt_Mask)
;;;112 {
;;;113
;;;114 /* check if SUSPEND is possible */
;;;115 if (fSuspendEnabled)
;;;116 {
;;;117 Suspend();
;;;118 }
;;;119 else
;;;120 {
;;;121 /* if not possible then resume after xx ms */
;;;122 Resume(RESUME_LATER);
;;;123 }
;;;124 /* clear of the ISTR bit must be done after setting of CNTR_FSUSP */
;;;125 _SetISTR((u16)CLR_SUSP);
;;;126 #ifdef SUSP_CALLBACK
;;;127 SUSP_Callback();
;;;128 #endif
;;;129 }
;;;130 #endif
;;;131 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;132 #if (IMR_MSK & ISTR_SOF)
;;;133 if (wIstr & ISTR_SOF & wInterrupt_Mask)
;;;134 {
;;;135 _SetISTR((u16)CLR_SOF);
;;;136 bIntPackSOF++;
;;;137
;;;138 #ifdef SOF_CALLBACK
;;;139 SOF_Callback();
;;;140 #endif
;;;141 }
;;;142 #endif
;;;143 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;144 #if (IMR_MSK & ISTR_ESOF)
;;;145 if (wIstr & ISTR_ESOF & wInterrupt_Mask)
;;;146 {
;;;147 _SetISTR((u16)CLR_ESOF);
;;;148 /* resume handling timing is made with ESOFs */
;;;149 Resume(RESUME_ESOF); /* request without change of the machine state */
;;;150
;;;151 #ifdef ESOF_CALLBACK
;;;152 ESOF_Callback();
;;;153 #endif
;;;154 }
;;;155 #endif
;;;156 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;157 #if (IMR_MSK & ISTR_CTR)
;;;158 if (wIstr & ISTR_CTR & wInterrupt_Mask)
000026 8820 LDRH r0,[r4,#0] ; wIstr
000028 8829 LDRH r1,[r5,#0] ; wInterrupt_Mask
00002a 4008 ANDS r0,r0,r1
00002c 0400 LSLS r0,r0,#16
00002e d503 BPL |L1.56|
;;;159 {
;;;160 /* servicing of the endpoint correct transfer interrupt */
;;;161 /* clear of the CTR flag into the sub */
;;;162 CTR_LP();
000030 e8bd4070 POP {r4-r6,lr}
000034 f7ffbffe B.W CTR_LP
|L1.56|
;;;163 #ifdef CTR_CALLBACK
;;;164 CTR_Callback();
;;;165 #endif
;;;166 }
;;;167 #endif
;;;168 } /* USB_Istr */
000038 bd70 POP {r4-r6,pc}
;;;169
ENDP
00003a 0000 DCW 0x0000
|L1.60|
00003c 40005000 DCD 0x40005000
|L1.64|
000040 00000000 DCD ||.data||
|L1.68|
000044 00000000 DCD wInterrupt_Mask
|L1.72|
000048 00000000 DCD Device_Property
AREA ||.data||, DATA, ALIGN=1
wIstr
000000 0000 DCB 0x00,0x00
AREA |area_number.3|, DATA, ALIGN=0
EXPORTAS |area_number.3|, ||.data||
bIntPackSOF
000000 00 DCB 0x00
AREA |area_number.4|, DATA, ALIGN=2
EXPORTAS |area_number.4|, ||.data||
pEpInt_IN
000000 00000000 DCD EP1_IN_Callback
000004 00000000 DCD NOP_Process
000008 00000000 DCD NOP_Process
00000c 00000000 DCD NOP_Process
000010 00000000 DCD NOP_Process
000014 00000000 DCD NOP_Process
000018 00000000 DCD NOP_Process
AREA |area_number.5|, DATA, ALIGN=2
EXPORTAS |area_number.5|, ||.data||
pEpInt_OUT
000000 00000000 DCD NOP_Process
000004 00000000 DCD EP2_OUT_Callback
000008 00000000 DCD NOP_Process
00000c 00000000 DCD NOP_Process
000010 00000000 DCD NOP_Process
000014 00000000 DCD NOP_Process
000018 00000000 DCD NOP_Process
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -