📄 usb_istr.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] 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..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\source\usb_istr.c]
THUMB
AREA ||i.USB_Istr||, CODE, READONLY, ALIGN=2
USB_Istr PROC
;;;64 *******************************************************************************/
;;;65 void USB_Istr(void)
000000 b570 PUSH {r4-r6,lr}
;;;66 {
;;;67
;;;68 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]
;;;69
;;;70 #if (IMR_MSK & ISTR_RESET)
;;;71 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|
;;;72 {
;;;73 _SetISTR((u16)CLR_RESET);
000018 f64f30ff MOV r0,#0xfbff
00001c f8c10c44 STR r0,[r1,#0xc44]
;;;74 Device_Property.Reset();
000020 4809 LDR r0,|L1.72|
000022 6840 LDR r0,[r0,#4] ; Device_Property
000024 4780 BLX r0
|L1.38|
;;;75 #ifdef RESET_CALLBACK
;;;76 RESET_Callback();
;;;77 #endif
;;;78 }
;;;79 #endif
;;;80 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;81 #if (IMR_MSK & ISTR_DOVR)
;;;82 if (wIstr & ISTR_DOVR & wInterrupt_Mask)
;;;83 {
;;;84 _SetISTR((u16)CLR_DOVR);
;;;85 #ifdef DOVR_CALLBACK
;;;86 DOVR_Callback();
;;;87 #endif
;;;88 }
;;;89 #endif
;;;90 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;91 #if (IMR_MSK & ISTR_ERR)
;;;92 if (wIstr & ISTR_ERR & wInterrupt_Mask)
;;;93 {
;;;94 _SetISTR((u16)CLR_ERR);
;;;95 #ifdef ERR_CALLBACK
;;;96 ERR_Callback();
;;;97 #endif
;;;98 }
;;;99 #endif
;;;100 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;101 #if (IMR_MSK & ISTR_WKUP)
;;;102 if (wIstr & ISTR_WKUP & wInterrupt_Mask)
;;;103 {
;;;104 _SetISTR((u16)CLR_WKUP);
;;;105 Resume(RESUME_EXTERNAL);
;;;106 #ifdef WKUP_CALLBACK
;;;107 WKUP_Callback();
;;;108 #endif
;;;109 }
;;;110 #endif
;;;111 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;112 #if (IMR_MSK & ISTR_SUSP)
;;;113 if (wIstr & ISTR_SUSP & wInterrupt_Mask)
;;;114 {
;;;115
;;;116 /* check if SUSPEND is possible */
;;;117 if (fSuspendEnabled)
;;;118 {
;;;119 Suspend();
;;;120 }
;;;121 else
;;;122 {
;;;123 /* if not possible then resume after xx ms */
;;;124 Resume(RESUME_LATER);
;;;125 }
;;;126 /* clear of the ISTR bit must be done after setting of CNTR_FSUSP */
;;;127 _SetISTR((u16)CLR_SUSP);
;;;128 #ifdef SUSP_CALLBACK
;;;129 SUSP_Callback();
;;;130 #endif
;;;131 }
;;;132 #endif
;;;133 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;134 #if (IMR_MSK & ISTR_SOF)
;;;135 if (wIstr & ISTR_SOF & wInterrupt_Mask)
;;;136 {
;;;137 _SetISTR((u16)CLR_SOF);
;;;138 bIntPackSOF++;
;;;139
;;;140 #ifdef SOF_CALLBACK
;;;141 SOF_Callback();
;;;142 #endif
;;;143 }
;;;144 #endif
;;;145 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;146 #if (IMR_MSK & ISTR_ESOF)
;;;147 if (wIstr & ISTR_ESOF & wInterrupt_Mask)
;;;148 {
;;;149 _SetISTR((u16)CLR_ESOF);
;;;150 /* resume handling timing is made with ESOFs */
;;;151 Resume(RESUME_ESOF); /* request without change of the machine state */
;;;152
;;;153 #ifdef ESOF_CALLBACK
;;;154 ESOF_Callback();
;;;155 #endif
;;;156 }
;;;157 #endif
;;;158 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
;;;159 #if (IMR_MSK & ISTR_CTR)
;;;160 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|
;;;161 {
;;;162 /* servicing of the endpoint correct transfer interrupt */
;;;163 /* clear of the CTR flag into the sub */
;;;164 CTR_LP();
000030 e8bd4070 POP {r4-r6,lr}
000034 f7ffbffe B.W CTR_LP
|L1.56|
;;;165 #ifdef CTR_CALLBACK
;;;166 CTR_Callback();
;;;167 #endif
;;;168 }
;;;169 #endif
;;;170 } /* USB_Istr */
000038 bd70 POP {r4-r6,pc}
;;;171
ENDP
00003a 0000 DCW 0x0000
|L1.60|
DCD 0x40005000
|L1.64|
DCD ||area_number.7||
|L1.68|
DCD wInterrupt_Mask
|L1.72|
DCD Device_Property
AREA ||.data||, DATA, ALIGN=0
bIntPackSOF
000000 00 DCB 0x00
AREA ||area_number.5||, DATA, ALIGN=2
EXPORTAS ||area_number.5||, ||.data||
pEpInt_IN
DCD EP1_IN_Callback
DCD NOP_Process
DCD NOP_Process
DCD NOP_Process
DCD NOP_Process
DCD NOP_Process
DCD NOP_Process
AREA ||area_number.6||, DATA, ALIGN=2
EXPORTAS ||area_number.6||, ||.data||
pEpInt_OUT
DCD NOP_Process
DCD EP2_OUT_Callback
DCD NOP_Process
DCD NOP_Process
DCD NOP_Process
DCD NOP_Process
DCD NOP_Process
AREA ||area_number.7||, DATA, ALIGN=1
EXPORTAS ||area_number.7||, ||.data||
wIstr
000000 0000 DCB 0x00,0x00
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -