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

📄 usb_istr.txt

📁 MP3_PLAYER.rar
💻 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 + -