⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb_istr.txt

📁 stm32.rar
💻 TXT
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 942] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Int_Flash\usb_istr.o --depend=.\Int_Flash\usb_istr.d --device=DARMSTM --apcs=interwork -O3 -I..\include -I..\..\..\..\..\INC\ST\STM32F10x\USB -Id:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB --omf_browse=.\Int_Flash\usb_istr.crf ..\source\usb_istr.c]
                          THUMB

                          AREA ||i.USB_Istr||, CODE, READONLY, ALIGN=2

                  USB_Istr PROC
;;;65     void USB_Istr(void)
;;;66     {
000000  b570              PUSH     {r4-r6,lr}
;;;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]  ; wIstr
;;;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|
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 + -