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

📄 usb_int.s79

📁 用于监视I2C通信总线
💻 S79
📖 第 1 页 / 共 2 页
字号:
        EORS     R1,R1,#0x2000
        STR      R1,[R5, #+0]
        LDR      R1,[R5, #+0]
        ANDS     R1,R1,R6
        EORS     R1,R1,#0x20
        STR      R1,[R5, #+0]
        LDRH     R1,[R8, #+0]
        LSLS     R1,R1,#+27
        BMI.N    ??CTR_LP_5
        LDR      R0,[R5, #+0]
        ANDS     R0,R10,R0
        STR      R0,[R5, #+0]
        _BLF     In0_Process,??In0_Process??rT
        LDR      R0,[R5, #+0]
        ANDS     R4,R4,R0
        LDRH     R0,[R11, #+0]
        LSLS     R1,R0,#+19
        IT      MI 
        EORSMI   R4,R4,#0x1000
        LSLS     R0,R0,#+18
        BPL.N    ??CTR_LP_6
        EORS     R4,R4,#0x2000
        UXTH     R4,R4
??CTR_LP_6:
        STR      R4,[R5, #+0]
        LDR      R0,[R5, #+0]
        ANDS     R6,R6,R0
        LDRH     R0,[R11, #+2]
        LSLS     R1,R0,#+27
        IT      MI 
        EORSMI   R6,R6,#0x10
        LSLS     R0,R0,#+26
        BPL.N    ??CTR_LP_7
        EORS     R6,R6,#0x20
        UXTH     R6,R6
??CTR_LP_8:
        B.N      ??CTR_LP_7
??CTR_LP_5:
        LDR      R7,[R5, #+0]
        UXTH     R7,R7
        LSLS     R1,R7,#+24
        BPL.N    ??CTR_LP_9
        LDR      R0,[R5, #+0]
        ANDS     R0,R10,R0
        STR      R0,[R5, #+0]
        _BLF     In0_Process,??In0_Process??rT
        LDR      R0,[R5, #+0]
        ANDS     R4,R4,R0
        LDRH     R0,[R11, #+0]
        LSLS     R1,R0,#+19
        IT      MI 
        EORSMI   R4,R4,#0x1000
        LSLS     R0,R0,#+18
        BPL.N    ??CTR_LP_10
        EORS     R4,R4,#0x2000
        UXTH     R4,R4
??CTR_LP_10:
        STR      R4,[R5, #+0]
        LDR      R0,[R5, #+0]
        ANDS     R6,R6,R0
        LDRH     R0,[R11, #+2]
        LSLS     R1,R0,#+27
        IT      MI 
        EORSMI   R6,R6,#0x10
        LSLS     R0,R0,#+26
        BPL.N    ??CTR_LP_7
        EORS     R6,R6,#0x20
        UXTH     R6,R6
??CTR_LP_11:
        B.N      ??CTR_LP_7
??CTR_LP_9:
        LSLS     R1,R7,#+20
        BPL.N    ??CTR_LP_12
        LDR      R1,[R5, #+0]
        ANDS     R0,R0,R1
        STR      R0,[R5, #+0]
        _BLF     Setup0_Process,??Setup0_Process??rT
        LDR      R0,[R5, #+0]
        ANDS     R4,R4,R0
        LDRH     R0,[R11, #+0]
        LSLS     R1,R0,#+19
        IT      MI 
        EORSMI   R4,R4,#0x1000
        LSLS     R0,R0,#+18
        BPL.N    ??CTR_LP_13
        EORS     R4,R4,#0x2000
        UXTH     R4,R4
??CTR_LP_13:
        STR      R4,[R5, #+0]
        LDR      R0,[R5, #+0]
        ANDS     R6,R6,R0
        LDRH     R0,[R11, #+2]
        LSLS     R1,R0,#+27
        IT      MI 
        EORSMI   R6,R6,#0x10
        LSLS     R0,R0,#+26
        BPL.N    ??CTR_LP_7
        EORS     R6,R6,#0x20
        UXTH     R6,R6
??CTR_LP_14:
        B.N      ??CTR_LP_7
??CTR_LP_12:
        LSLS     R1,R7,#+16
        BPL.W    ??CTR_LP_1
        LDR      R1,[R5, #+0]
        ANDS     R0,R0,R1
        STR      R0,[R5, #+0]
        _BLF     Out0_Process,??Out0_Process??rT
        LDR      R0,[R5, #+0]
        ANDS     R4,R4,R0
        LDRH     R0,[R11, #+0]
        LSLS     R1,R0,#+19
        IT      MI 
        EORSMI   R4,R4,#0x1000
        LSLS     R0,R0,#+18
        BPL.N    ??CTR_LP_15
        EORS     R4,R4,#0x2000
        UXTH     R4,R4
??CTR_LP_15:
        STR      R4,[R5, #+0]
        LDR      R0,[R5, #+0]
        ANDS     R6,R6,R0
        LDRH     R0,[R11, #+2]
        LSLS     R1,R0,#+27
        IT      MI 
        EORSMI   R6,R6,#0x10
        LSLS     R0,R0,#+26
        BPL.N    ??CTR_LP_7
        EORS     R6,R6,#0x20
        UXTH     R6,R6
??CTR_LP_7:
        STR      R6,[R5, #+0]
??CTR_LP_4:
        POP      {R4-R11,PC}      ;; return
        DATA
??CTR_LP_0:
        DC32     0x8fbf
        DC32     SaveRState
        DC32     0xbf8f
        CFI EndBlock cfiBlock0
//  146 
//  147   }/* while(...) */
//  148 }
//  149 
//  150 /*******************************************************************************
//  151 * Function Name  : CTR_HP.
//  152 * Description    : High Priority Endpoint Correct Transfer interrupt's service 
//  153 *                  routine.
//  154 * Input          : None.
//  155 * Output         : None.
//  156 * Return         : None.
//  157 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function CTR_HP
        THUMB
//  158 void CTR_HP(void)
//  159 {
CTR_HP:
        PUSH     {R4,R5,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R5 Frame(CFA, -8)
        CFI R4 Frame(CFA, -12)
        CFI CFA R13+12
//  160   u32 wEPVal = 0;
        LDR.N    R4,??DataTable9  ;; wIstr
        LDR.N    R5,??DataTable10  ;; 0x40005c44
        B.N      ??CTR_HP_0
//  161 
//  162   while (((wIstr = _GetISTR()) & ISTR_CTR) != 0)
//  163   {
//  164     _SetISTR((u16)CLR_CTR); /* clear CTR flag */
//  165     /* extract highest priority endpoint number */
//  166     EPindex = (u8)(wIstr & ISTR_EP_ID);
//  167     /* process related endpoint register */
//  168     wEPVal = _GetENDPOINT(EPindex);
//  169     if ((wEPVal & EP_CTR_RX) != 0)
//  170     {
//  171       /* clear int flag */
//  172       _ClearEP_CTR_RX(EPindex);
??CTR_HP_1:
        LDR      R2,[R1, #+0]
        LDR.N    R3,??DataTable11  ;; 0xf8f
        ANDS     R3,R3,R2
        STR      R3,[R1, #+0]
//  173 
//  174       /* call OUT service function */
//  175       (*pEpInt_OUT[EPindex-1])();
        LDR.N    R1,??DataTable12  ;; pEpInt_OUT
        ADDS     R0,R1,R0, LSL #+2
        SUBS     R0,R0,#+4
        LDR      R0,[R0, #+0]
        BLX      R0
//  176 
//  177     } /* if((wEPVal & EP_CTR_RX) */
??CTR_HP_0:
        LDR      R0,[R5, #+0]
        STRH     R0,[R4, #+0]
        LSLS     R0,R0,#+16
        BPL.N    ??CTR_HP_2
        LDR.N    R0,??DataTable13  ;; 0x7fff
        LDR.N    R1,??DataTable14  ;; EPindex
        STR      R0,[R5, #+0]
        LDRH     R0,[R4, #+0]
        LSLS     R0,R0,#+28
        LSRS     R0,R0,#+28
        STRB     R0,[R1, #+0]
        LDR.N    R1,??DataTable15  ;; 0x40005c00
        ADDS     R1,R1,R0, LSL #+2
        LDR      R2,[R1, #+0]
        UXTH     R2,R2
        LSLS     R3,R2,#+16
        BMI.N    ??CTR_HP_1
//  178     else if ((wEPVal & EP_CTR_TX) != 0)
        LSLS     R2,R2,#+24
        BPL.N    ??CTR_HP_0
//  179     {
//  180       /* clear int flag */
//  181       _ClearEP_CTR_TX(EPindex);
        LDR      R2,[R1, #+0]
        LDR.N    R3,??DataTable16  ;; 0x8f0f
        ANDS     R3,R3,R2
        STR      R3,[R1, #+0]
//  182 
//  183       /* call IN service function */
//  184       (*pEpInt_IN[EPindex-1])();
        LDR.N    R1,??DataTable17  ;; pEpInt_IN
        ADDS     R0,R1,R0, LSL #+2
        SUBS     R0,R0,#+4
        LDR      R0,[R0, #+0]
        BLX      R0
        B.N      ??CTR_HP_0
//  185 
//  186 
//  187     } /* if((wEPVal & EP_CTR_TX) != 0) */
//  188 
//  189   }/* while(...) */
//  190 }
??CTR_HP_2:
        POP      {R4,R5,PC}       ;; return
        CFI EndBlock cfiBlock1

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable9:
        DC32     wIstr

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable10:
        DC32     0x40005c44

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable11:
        DC32     0xf8f

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable12:
        DC32     pEpInt_OUT

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable13:
        DC32     0x7fff

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable14:
        DC32     EPindex

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable15:
        DC32     0x40005c00

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable16:
        DC32     0x8f0f

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable17:
        DC32     pEpInt_IN

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock2 Using cfiCommon0
        CFI NoFunction
        THUMB
??In0_Process??rT:
        LDR.N    R3,??Subroutine0_0  ;; In0_Process
        BX       R3
        DATA
??Subroutine0_0:
        DC32     In0_Process
        CFI EndBlock cfiBlock2

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock3 Using cfiCommon0
        CFI NoFunction
        THUMB
??Setup0_Process??rT:
        LDR.N    R3,??Subroutine1_0  ;; Setup0_Process
        BX       R3
        DATA
??Subroutine1_0:
        DC32     Setup0_Process
        CFI EndBlock cfiBlock3

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock4 Using cfiCommon0
        CFI NoFunction
        THUMB
??Out0_Process??rT:
        LDR.N    R3,??Subroutine2_0  ;; Out0_Process
        BX       R3
        DATA
??Subroutine2_0:
        DC32     Out0_Process
        CFI EndBlock cfiBlock4

        RSEG INITTAB:CODE:ROOT(2)
        DATA
?init?tab?DATA_Z:
        DCD      sfe(DATA_Z) - sfb(DATA_Z), sfb(DATA_Z), sfb(DATA_Z)

        END
//  191 
//  192 /******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
// 
// 628 bytes in segment CODE
//   4 bytes in segment DATA_Z
//  12 bytes in segment INITTAB
// 
// 604 bytes of CODE memory (+ 36 bytes shared)
//   4 bytes of DATA memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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