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

📄 usb_regs.s79

📁 用于监视I2C通信总线
💻 S79
📖 第 1 页 / 共 5 页
字号:
//  519 * Description    : Set the Count Rx Register value.
//  520 * Input          : *pdwReg: point to the register.
//  521 *                  wCount: the new register value.
//  522 * Output         : None.
//  523 * Return         : None.
//  524 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock44 Using cfiCommon0
        CFI Function SetEPCountRxReg
        THUMB
//  525 void SetEPCountRxReg(u32 *pdwReg, u16 wCount)
//  526 {
//  527   _SetEPCountRxReg(dwReg, wCount);
SetEPCountRxReg:
        CMP      R1,#+63
        BCC.N    ??SetEPCountRxReg_0
        LSRS     R2,R1,#+5
        LSLS     R1,R1,#+27
        ITT     EQ 
        SUBEQ    R2,R2,#+1
        UXTHEQ   R2,R2
        LSLS     R1,R2,#+10
        ORRS     R1,R1,#0x8000
        B.N      ??SetEPCountRxReg_1
??SetEPCountRxReg_0:
        LSRS     R2,R1,#+1
        LSLS     R1,R1,#+31
        ITT     MI 
        ADDMI    R2,R2,#+1
        UXTHMI   R2,R2
        LSLS     R1,R2,#+10
??SetEPCountRxReg_1:
        STR      R1,[R0, #+0]
//  528 }
        BX       LR               ;; return
        CFI EndBlock cfiBlock44
//  529 /*******************************************************************************
//  530 * Function Name  : SetEPRxCount
//  531 * Description    : Set the Rx count.
//  532 * Input          : bEpNum: Endpoint Number. 
//  533 *                  wCount: the new count value.
//  534 * Output         : None.
//  535 * Return         : None.
//  536 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock45 Using cfiCommon0
        CFI Function SetEPRxCount
        THUMB
//  537 void SetEPRxCount(u8 bEpNum, u16 wCount)
//  538 {
//  539   _SetEPRxCount(bEpNum, wCount);
SetEPRxCount:
        LDR.N    R2,??DataTable88  ;; 0x40005c50
        LDR      R2,[R2, #+0]
        UXTH     R2,R2
        ADDS     R0,R2,R0, LSL #+3
        LDR.N    R2,??DataTable89  ;; 0x4000600c
        ADDS     R0,R2,R0, LSL #+1
        CMP      R1,#+63
        BCC.N    ??SetEPRxCount_0
        LSRS     R2,R1,#+5
        LSLS     R1,R1,#+27
        ITT     EQ 
        SUBEQ    R2,R2,#+1
        UXTHEQ   R2,R2
        LSLS     R1,R2,#+10
        ORRS     R1,R1,#0x8000
        B.N      ??SetEPRxCount_1
??SetEPRxCount_0:
        LSRS     R2,R1,#+1
        LSLS     R1,R1,#+31
        ITT     MI 
        ADDMI    R2,R2,#+1
        UXTHMI   R2,R2
        LSLS     R1,R2,#+10
??SetEPRxCount_1:
        STR      R1,[R0, #+0]
//  540 }
        BX       LR               ;; return
        CFI EndBlock cfiBlock45
//  541 /*******************************************************************************
//  542 * Function Name  : GetEPTxCount
//  543 * Description    : Get the Tx count.
//  544 * Input          : bEpNum: Endpoint Number. 
//  545 * Output         : None
//  546 * Return         : Tx count value.
//  547 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock46 Using cfiCommon0
        CFI Function GetEPTxCount
        THUMB
//  548 u16 GetEPTxCount(u8 bEpNum)
//  549 {
//  550   return(_GetEPTxCount(bEpNum));
GetEPTxCount:
        LDR.N    R1,??DataTable88  ;; 0x40005c50
        LDR      R1,[R1, #+0]
        UXTH     R1,R1
        ADDS     R0,R1,R0, LSL #+3
        LDR.N    R1,??DataTable90  ;; 0x40006004
        LDR      R0,[R1, R0, LSL #+1]
        B.N      ?Subroutine3
        CFI EndBlock cfiBlock46
//  551 }
//  552 /*******************************************************************************
//  553 * Function Name  : GetEPRxCount
//  554 * Description    : Get the Rx count.
//  555 * Input          : bEpNum: Endpoint Number. 
//  556 * Output         : None.
//  557 * Return         : Rx count value.
//  558 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock47 Using cfiCommon0
        CFI Function GetEPRxCount
        THUMB
//  559 u16 GetEPRxCount(u8 bEpNum)
//  560 {
//  561   return(_GetEPRxCount(bEpNum));
GetEPRxCount:
        LDR.N    R1,??DataTable88  ;; 0x40005c50
        LDR      R1,[R1, #+0]
        UXTH     R1,R1
        ADDS     R0,R1,R0, LSL #+3
        LDR.N    R1,??DataTable89  ;; 0x4000600c
        LDR      R0,[R1, R0, LSL #+1]
        CFI EndBlock cfiBlock47
        REQUIRE ?Subroutine3
        ;; // Fall through to label ?Subroutine3
//  562 }

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock48 Using cfiCommon0
        CFI NoFunction
        THUMB
?Subroutine3:
        LSLS     R0,R0,#+22
        LSRS     R0,R0,#+22
        BX       LR               ;; return
        CFI EndBlock cfiBlock48
//  563 /*******************************************************************************
//  564 * Function Name  : SetEPDblBuffAddr
//  565 * Description    : Set the addresses of the buffer 0 and 1.
//  566 * Input          : bEpNum: Endpoint Number.  
//  567 *                  wBuf0Addr: new address of buffer 0. 
//  568 *                  wBuf1Addr: new address of buffer 1.
//  569 * Output         : None.
//  570 * Return         : None.
//  571 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock49 Using cfiCommon0
        CFI Function SetEPDblBuffAddr
        THUMB
//  572 void SetEPDblBuffAddr(u8 bEpNum, u16 wBuf0Addr, u16 wBuf1Addr)
//  573 {
//  574   _SetEPDblBuffAddr(bEpNum, wBuf0Addr, wBuf1Addr);
SetEPDblBuffAddr:
        LDR.N    R3,??DataTable88  ;; 0x40005c50
        PUSH     {R4,R5,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R5 Frame(CFA, -8)
        CFI R4 Frame(CFA, -12)
        CFI CFA R13+12
        LDR.N    R5,??DataTable74  ;; 0x40006000
        LDR      R4,[R3, #+0]
        LSLS     R0,R0,#+3
        LSRS     R1,R1,#+1
        UXTH     R4,R4
        ADDS     R4,R4,R0
        LSLS     R1,R1,#+1
        STR      R1,[R5, R4, LSL #+1]
        LDR      R1,[R3, #+0]
        LSRS     R2,R2,#+1
        LSLS     R2,R2,#+1
        UXTH     R1,R1
        ADDS     R0,R1,R0
        LDR.N    R1,??DataTable76  ;; 0x40006008
        STR      R2,[R1, R0, LSL #+1]
//  575 }
        POP      {R4,R5,PC}       ;; return
        CFI EndBlock cfiBlock49
//  576 /*******************************************************************************
//  577 * Function Name  : SetEPDblBuf0Addr
//  578 * Description    : Set the Buffer 1 address.
//  579 * Input          : bEpNum: Endpoint Number
//  580 *                  wBuf0Addr: new address.
//  581 * Output         : None.
//  582 * Return         : None.
//  583 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock50 Using cfiCommon0
        CFI Function SetEPDblBuf0Addr
        THUMB
//  584 void SetEPDblBuf0Addr(u8 bEpNum, u16 wBuf0Addr)
//  585 {
//  586   _SetEPDblBuf0Addr(bEpNum, wBuf0Addr);
SetEPDblBuf0Addr:
        LDR.N    R2,??DataTable88  ;; 0x40005c50
        LSRS     R1,R1,#+1
        LSLS     R1,R1,#+1
        LDR      R2,[R2, #+0]
        UXTH     R2,R2
        ADDS     R0,R2,R0, LSL #+3
        LDR.N    R2,??DataTable74  ;; 0x40006000
        STR      R1,[R2, R0, LSL #+1]
//  587 }
        BX       LR               ;; return
        CFI EndBlock cfiBlock50
//  588 /*******************************************************************************
//  589 * Function Name  : SetEPDblBuf1Addr
//  590 * Description    : Set the Buffer 1 address.
//  591 * Input          : bEpNum: Endpoint Number
//  592 *                  wBuf1Addr: new address.
//  593 * Output         : None.
//  594 * Return         : None.
//  595 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock51 Using cfiCommon0
        CFI Function SetEPDblBuf1Addr
        THUMB
//  596 void SetEPDblBuf1Addr(u8 bEpNum, u16 wBuf1Addr)
//  597 {
//  598   _SetEPDblBuf1Addr(bEpNum, wBuf1Addr);
SetEPDblBuf1Addr:
        LDR.N    R2,??DataTable88  ;; 0x40005c50
        LSRS     R1,R1,#+1
        LSLS     R1,R1,#+1
        LDR      R2,[R2, #+0]
        UXTH     R2,R2
        ADDS     R0,R2,R0, LSL #+3
        LDR.N    R2,??DataTable76  ;; 0x40006008
        STR      R1,[R2, R0, LSL #+1]
//  599 }
        BX       LR               ;; return
        CFI EndBlock cfiBlock51
//  600 /*******************************************************************************
//  601 * Function Name  : GetEPDblBuf0Addr
//  602 * Description    : Returns the address of the Buffer 0.
//  603 * Input          : bEpNum: Endpoint Number.
//  604 * Output         : None.
//  605 * Return         : None.
//  606 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock52 Using cfiCommon0
        CFI Function GetEPDblBuf0Addr
        THUMB
//  607 u16 GetEPDblBuf0Addr(u8 bEpNum)
//  608 {
//  609   return(_GetEPDblBuf0Addr(bEpNum));
GetEPDblBuf0Addr:
        LDR.N    R1,??DataTable88  ;; 0x40005c50
        LDR      R1,[R1, #+0]
        UXTH     R1,R1
        ADDS     R0,R1,R0, LSL #+3
        LDR.N    R1,??DataTable74  ;; 0x40006000
        LDR      R0,[R1, R0, LSL #+1]
        UXTH     R0,R0
        BX       LR               ;; return
        CFI EndBlock cfiBlock52
//  610 }

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable74:
        DC32     0x40006000
//  611 /*******************************************************************************
//  612 * Function Name  : GetEPDblBuf1Addr
//  613 * Description    : Returns the address of the Buffer 1.
//  614 * Input          : bEpNum: Endpoint Number.
//  615 * Output         : None.
//  616 * Return         : Address of the Buffer 1.
//  617 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock53 Using cfiCommon0
        CFI Function GetEPDblBuf1Addr
        THUMB
//  618 u16 GetEPDblBuf1Addr(u8 bEpNum)
//  619 {
//  620   return(_GetEPDblBuf1Addr(bEpNum));
GetEPDblBuf1Addr:
        LDR.N    R1,??DataTable88  ;; 0x40005c50
        LDR      R1,[R1, #+0]
        UXTH     R1,R1
        ADDS     R0,R1,R0, LSL #+3
        LDR.N    R1,??DataTable76  ;; 0x40006008
        LDR      R0,[R1, R0, LSL #+1]
        UXTH     R0,R0
        BX       LR               ;; return
        CFI EndBlock cfiBlock53
//  621 }

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable76:
        DC32     0x40006008
//  622 /*******************************************************************************
//  623 * Function Name  : SetEPDblBuffCount
//  624 * Description    : Set the number of bytes for a double Buffer 
//  625 *                  endpoint.
//  626 * Input          : bEpNum,bDir, wCount
//  627 * Output         : None.
//  628 * Return         : None.
//  629 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock54 Using cfiCommon0
        CFI Function SetEPDblBuffCount
        THUMB
//  630 void SetEPDblBuffCount(u8 bEpNum, u8 bDir, u16 wCount)
//  631 {
//  632   _SetEPDblBuffCount(bEpNum, bDir, wCount);
SetEPDblBuffCount:
        LDR.N    R3,??DataTable88  ;; 0x40005c50
        PUSH     {R4-R8,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R8 Frame(CFA, -8)
        CFI R7 Frame(CFA, -12)
        CFI R6 Frame(CFA, -16)
        CFI R5 Frame(CFA, -20)
        CFI R4 Frame(CFA, -24)
        CFI CFA R13+24
        LDR.N    R4,??DataTable89  ;; 0x4000600c
        LSLS     R5,R0,#+3
        LDR.N    R0,??DataTable90  ;; 0x40006004
        CMP      R1,#+1
        BNE.N    ??SetEPDblBuffCount_0
        LDR      R1,[R3, #+0]
        UXTH     R1,R1
        ADDS     R1,R1,R5
        ADDS     R8,R0,R1, LSL #+1
        LSRS     R1,R2,#+5
        LSRS     R0,R2,#+1
        CMP      R2,#+63
        BCC.N    ??SetEPDblBuffCount_1
        MOVS     R6,R1
        LSLS     R7,R2,#+27
        ITT     EQ 
        SUBEQ    R6,R6,#+1
        UXTHEQ   R6,R6
        LSLS     R6,R6,#+10
        ORRS     R6,R6,#0x8000
        STR      R6,[R8, #+0]
??SetEPDblBuffCount_2:
        LDR      R3,[R3, #+0]
        UXTH     R3,R3
        ADDS     R3,R3,R5
        ADDS     R3,R4,R3, LSL #+1
        CMP      R2,#+63
        BCC.N    ??SetEPDblBuffCount_3
        LSLS     R0,R2,#+27
        ITT     EQ 
        SUBEQ    R1,R1,#+1
        UXTHEQ   R1,

⌨️ 快捷键说明

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