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

📄 usb_istr.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 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 + -