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

📄 usb_int.txt

📁 MP3_PLAYER.rar
💻 TXT
📖 第 1 页 / 共 2 页
字号:
                  |L1.282|
00011a  f8c50c00          STR      r0,[r5,#0xc00]
00011e  e026              B        |L1.366|
000120  e7ff              B        |L1.290|
                  |L1.290|
;;;117        }/* if(EPindex == 0) */
;;;118        else
;;;119        {
;;;120          /* Decode and service non control endpoints interrupt  */
;;;121    
;;;122          /* process related endpoint register */
;;;123          wEPVal = _GetENDPOINT(EPindex);
000122  eb050180          ADD      r1,r5,r0,LSL #2
000126  f8d12c00          LDR      r2,[r1,#0xc00]
00012a  b294              UXTH     r4,r2
;;;124          if ((wEPVal & EP_CTR_RX) != 0)
00012c  0422              LSLS     r2,r4,#16
00012e  d50b              BPL      |L1.328|
;;;125          {
;;;126            /* clear int flag */
;;;127            _ClearEP_CTR_RX(EPindex);
000130  f8d12c00          LDR      r2,[r1,#0xc00]
000134  b292              UXTH     r2,r2
000136  4032              ANDS     r2,r2,r6
000138  f8c12c00          STR      r2,[r1,#0xc00]
;;;128    
;;;129            /* call OUT service function */
;;;130            (*pEpInt_OUT[EPindex-1])();
00013c  4914              LDR      r1,|L1.400|
00013e  eb010080          ADD      r0,r1,r0,LSL #2
000142  f8500c04          LDR      r0,[r0,#-4]
000146  4780              BLX      r0
                  |L1.328|
;;;131    
;;;132          } /* if((wEPVal & EP_CTR_RX) */
;;;133    
;;;134          if ((wEPVal & EP_CTR_TX) != 0)
000148  0620              LSLS     r0,r4,#24
00014a  d510              BPL      |L1.366|
;;;135          {
;;;136            /* clear int flag */
;;;137            _ClearEP_CTR_TX(EPindex);
00014c  f8990000          LDRB     r0,[r9,#0]  ; EPindex
000150  eb050180          ADD      r1,r5,r0,LSL #2
000154  f8d12c00          LDR      r2,[r1,#0xc00]
000158  b292              UXTH     r2,r2
00015a  ea02020a          AND      r2,r2,r10
00015e  f8c12c00          STR      r2,[r1,#0xc00]
;;;138    
;;;139            /* call IN service function */
;;;140            (*pEpInt_IN[EPindex-1])();
000162  490c              LDR      r1,|L1.404|
000164  eb010080          ADD      r0,r1,r0,LSL #2
000168  f8500c04          LDR      r0,[r0,#-4]
00016c  4780              BLX      r0
                  |L1.366|
00016e  f8d50c44          LDR      r0,[r5,#0xc44]        ;45
000172  f8ab0000          STRH     r0,[r11,#0]           ;45  ; wIstr
000176  0400              LSLS     r0,r0,#16             ;45
000178  f53faf50          BMI      |L1.28|
;;;141          } /* if((wEPVal & EP_CTR_TX) != 0) */
;;;142    
;;;143        }/* if(EPindex == 0) else */
;;;144    
;;;145      }/* while(...) */
;;;146    }
00017c  e8bd9ff0          POP      {r4-r12,pc}
;;;147    
                          ENDP

                  |L1.384|
000180  00000000          DCD      ||.data||
                  |L1.388|
000184  40005000          DCD      0x40005000
                  |L1.392|
000188  00000000          DCD      wIstr
                  |L1.396|
00018c  00000000          DCD      EPindex
                  |L1.400|
000190  00000000          DCD      pEpInt_OUT
                  |L1.404|
000194  00000000          DCD      pEpInt_IN

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

                  CTR_HP PROC
;;;156    void CTR_HP(void)
;;;157    {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  4d1d              LDR      r5,|L2.124|
000006  4e1e              LDR      r6,|L2.128|
000008  4f1e              LDR      r7,|L2.132|
;;;158      u32 wEPVal;
;;;159    
;;;160      while (((wIstr = _GetISTR()) & ISTR_CTR) != 0)
00000a  e030              B        |L2.110|
                  |L2.12|
;;;161      {
;;;162        _SetISTR((u16)CLR_CTR); /* clear CTR flag */
00000c  f64770ff          MOV      r0,#0x7fff
000010  f8c60c44          STR      r0,[r6,#0xc44]
;;;163        /* extract highest priority endpoint number */
;;;164        EPindex = (u8)(wIstr & ISTR_EP_ID);
000014  8838              LDRH     r0,[r7,#0]  ; wIstr
000016  f000000f          AND      r0,r0,#0xf
00001a  7028              STRB     r0,[r5,#0]  ; EPindex
;;;165        /* process related endpoint register */
;;;166        wEPVal = _GetENDPOINT(EPindex);
00001c  b2c1              UXTB     r1,r0
00001e  eb060081          ADD      r0,r6,r1,LSL #2
000022  f8d02c00          LDR      r2,[r0,#0xc00]
000026  b294              UXTH     r4,r2
;;;167        if ((wEPVal & EP_CTR_RX) != 0)
000028  0422              LSLS     r2,r4,#16
00002a  d50d              BPL      |L2.72|
;;;168        {
;;;169          /* clear int flag */
;;;170          _ClearEP_CTR_RX(EPindex);
00002c  f8d02c00          LDR      r2,[r0,#0xc00]
000030  f640738f          MOV      r3,#0xf8f
000034  b292              UXTH     r2,r2
000036  401a              ANDS     r2,r2,r3
000038  f8c02c00          STR      r2,[r0,#0xc00]
;;;171    
;;;172          /* call OUT service function */
;;;173          (*pEpInt_OUT[EPindex-1])();
00003c  4812              LDR      r0,|L2.136|
00003e  eb000081          ADD      r0,r0,r1,LSL #2
000042  f8500c04          LDR      r0,[r0,#-4]
000046  4780              BLX      r0
                  |L2.72|
;;;174    
;;;175        } /* if((wEPVal & EP_CTR_RX) */
;;;176        if ((wEPVal & EP_CTR_TX) != 0)
000048  0620              LSLS     r0,r4,#24
00004a  d510              BPL      |L2.110|
;;;177        {
;;;178          /* clear int flag */
;;;179          _ClearEP_CTR_TX(EPindex);
00004c  7828              LDRB     r0,[r5,#0]  ; EPindex
00004e  eb060180          ADD      r1,r6,r0,LSL #2
000052  f8d12c00          LDR      r2,[r1,#0xc00]
000056  f648730f          MOV      r3,#0x8f0f
00005a  b292              UXTH     r2,r2
00005c  401a              ANDS     r2,r2,r3
00005e  f8c12c00          STR      r2,[r1,#0xc00]
;;;180    
;;;181          /* call IN service function */
;;;182          (*pEpInt_IN[EPindex-1])();
000062  490a              LDR      r1,|L2.140|
000064  eb010080          ADD      r0,r1,r0,LSL #2
000068  f8500c04          LDR      r0,[r0,#-4]
00006c  4780              BLX      r0
                  |L2.110|
00006e  f8d60c44          LDR      r0,[r6,#0xc44]        ;160
000072  8038              STRH     r0,[r7,#0]            ;160  ; wIstr
000074  0400              LSLS     r0,r0,#16             ;160
000076  d4c9              BMI      |L2.12|
;;;183    
;;;184    
;;;185        } /* if((wEPVal & EP_CTR_TX) != 0) */
;;;186    
;;;187      }/* while(...) */
;;;188    }
000078  e8bd81f0          POP      {r4-r8,pc}
;;;189    
                          ENDP

                  |L2.124|
00007c  00000000          DCD      EPindex
                  |L2.128|
000080  40005000          DCD      0x40005000
                  |L2.132|
000084  00000000          DCD      wIstr
                  |L2.136|
000088  00000000          DCD      pEpInt_OUT
                  |L2.140|
00008c  00000000          DCD      pEpInt_IN

                          AREA ||.data||, DATA, ALIGN=1

                  SaveRState
000000  0000              DCB      0x00,0x00
                  SaveTState
000002  0000              DCB      0x00,0x00

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -