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

📄 usb_regs.s79

📁 用于监视I2C通信总线
💻 S79
📖 第 1 页 / 共 5 页
字号:
ClearEP_CTR_RX:
        LDR.N    R1,??DataTable49  ;; 0x40005c00
        LDR.N    R2,??ClearEP_CTR_RX_0  ;; 0xf8f
        ADDS     R0,R1,R0, LSL #+2
        B.N      ?Subroutine1
        Nop      
        DATA
??ClearEP_CTR_RX_0:
        DC32     0xf8f
        CFI EndBlock cfiBlock30
//  378 {
//  379   _ClearEP_CTR_RX(bEpNum);
//  380 }
//  381 /*******************************************************************************
//  382 * Function Name  : ClearEP_CTR_TX
//  383 * Description    : Clear the CTR_TX bit.
//  384 * Input          : bEpNum: Endpoint Number. 
//  385 * Output         : None.
//  386 * Return         : None.
//  387 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock31 Using cfiCommon0
        CFI Function ClearEP_CTR_TX
        THUMB
//  388 void ClearEP_CTR_TX(u8 bEpNum)
ClearEP_CTR_TX:
        LDR.N    R1,??DataTable49  ;; 0x40005c00
        LDR.N    R2,??ClearEP_CTR_TX_0  ;; 0x8f0f
        ADDS     R0,R1,R0, LSL #+2
        B.N      ?Subroutine1
        Nop      
        DATA
??ClearEP_CTR_TX_0:
        DC32     0x8f0f
        CFI EndBlock cfiBlock31
//  389 {
//  390   _ClearEP_CTR_TX(bEpNum);
//  391 }
//  392 /*******************************************************************************
//  393 * Function Name  : ToggleDTOG_RX
//  394 * Description    : Toggle the DTOG_RX bit.
//  395 * Input          : bEpNum: Endpoint Number. 
//  396 * Output         : None.
//  397 * Return         : None.
//  398 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock32 Using cfiCommon0
        CFI Function ToggleDTOG_RX
        THUMB
//  399 void ToggleDTOG_RX(u8 bEpNum)
//  400 {
ToggleDTOG_RX:
        LDR.N    R1,??DataTable49  ;; 0x40005c00
        LDR.N    R2,??DataTable48  ;; 0x8f8f
        ADDS     R0,R1,R0, LSL #+2
        LDR      R1,[R0, #+0]
        ANDS     R2,R2,R1
        ORRS     R1,R2,#0x4000
        STR      R1,[R0, #+0]
//  401   _ToggleDTOG_RX(bEpNum);
//  402 }
        BX       LR               ;; return
        CFI EndBlock cfiBlock32
//  403 /*******************************************************************************
//  404 * Function Name  : ToggleDTOG_TX
//  405 * Description    : Toggle the DTOG_TX bit.
//  406 * Input          : bEpNum: Endpoint Number. 
//  407 * Output         : None.
//  408 * Return         : None.
//  409 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock33 Using cfiCommon0
        CFI Function ToggleDTOG_TX
        THUMB
//  410 void ToggleDTOG_TX(u8 bEpNum)
//  411 {
ToggleDTOG_TX:
        LDR.N    R1,??DataTable49  ;; 0x40005c00
        LDR.N    R2,??DataTable48  ;; 0x8f8f
        ADDS     R0,R1,R0, LSL #+2
        LDR      R1,[R0, #+0]
        ANDS     R2,R2,R1
        ORRS     R1,R2,#0x40
        STR      R1,[R0, #+0]
//  412   _ToggleDTOG_TX(bEpNum);
//  413 }
        BX       LR               ;; return
        CFI EndBlock cfiBlock33
//  414 /*******************************************************************************
//  415 * Function Name  : ClearDTOG_RX.
//  416 * Description    : Clear the DTOG_RX bit.
//  417 * Input          : bEpNum: Endpoint Number. 
//  418 * Output         : None.
//  419 * Return         : None.
//  420 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock34 Using cfiCommon0
        CFI Function ClearDTOG_RX
        THUMB
//  421 void ClearDTOG_RX(u8 bEpNum)
//  422 {
ClearDTOG_RX:
        LDR.N    R1,??DataTable49  ;; 0x40005c00
        ADDS     R0,R1,R0, LSL #+2
        LDR      R1,[R0, #+0]
        LSLS     R1,R1,#+17
        BPL.N    ??ClearDTOG_RX_0
//  423   _ClearDTOG_RX(bEpNum);
        LDR      R1,[R0, #+0]
        LDR.N    R2,??DataTable48  ;; 0x8f8f
        ANDS     R2,R2,R1
        ORRS     R1,R2,#0x4000
        STR      R1,[R0, #+0]
//  424 }
??ClearDTOG_RX_0:
        BX       LR               ;; return
        CFI EndBlock cfiBlock34
//  425 /*******************************************************************************
//  426 * Function Name  : ClearDTOG_TX.
//  427 * Description    : Clear the DTOG_TX bit.
//  428 * Input          : bEpNum: Endpoint Number. 
//  429 * Output         : None.
//  430 * Return         : None.
//  431 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock35 Using cfiCommon0
        CFI Function ClearDTOG_TX
        THUMB
//  432 void ClearDTOG_TX(u8 bEpNum)
//  433 {
ClearDTOG_TX:
        LDR.N    R1,??DataTable49  ;; 0x40005c00
        ADDS     R0,R1,R0, LSL #+2
        LDR      R1,[R0, #+0]
        LSLS     R1,R1,#+25
        BPL.N    ??ClearDTOG_TX_0
//  434   _ClearDTOG_TX(bEpNum);
        LDR      R1,[R0, #+0]
        LDR.N    R2,??DataTable48  ;; 0x8f8f
        ANDS     R2,R2,R1
        ORRS     R1,R2,#0x40
        STR      R1,[R0, #+0]
//  435 }
??ClearDTOG_TX_0:
        BX       LR               ;; return
        CFI EndBlock cfiBlock35
//  436 /*******************************************************************************
//  437 * Function Name  : SetEPAddress
//  438 * Description    : Set the endpoint address.
//  439 * Input          : bEpNum: Endpoint Number.
//  440 *                  bAddr: New endpoint address.
//  441 * Output         : None.
//  442 * Return         : None.
//  443 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock36 Using cfiCommon0
        CFI Function SetEPAddress
        THUMB
//  444 void SetEPAddress(u8 bEpNum, u8 bAddr)
SetEPAddress:
        LDR.N    R2,??DataTable49  ;; 0x40005c00
        LDR.N    R3,??DataTable48  ;; 0x8f8f
        ADDS     R0,R2,R0, LSL #+2
        CFI EndBlock cfiBlock36
        REQUIRE ?Subroutine0
        ;; // Fall through to label ?Subroutine0

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock37 Using cfiCommon0
        CFI NoFunction
        THUMB
?Subroutine0:
        LDR      R2,[R0, #+0]
        ANDS     R3,R3,R2
        ORRS     R1,R1,R3
        STR      R1,[R0, #+0]
        BX       LR               ;; return
        CFI EndBlock cfiBlock37

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable48:
        DC32     0x8f8f
//  445 {
//  446   _SetEPAddress(bEpNum, bAddr);
//  447 }
//  448 /*******************************************************************************
//  449 * Function Name  : GetEPAddress
//  450 * Description    : Get the endpoint address.
//  451 * Input          : bEpNum: Endpoint Number. 
//  452 * Output         : None.
//  453 * Return         : Endpoint address.
//  454 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock38 Using cfiCommon0
        CFI Function GetEPAddress
        THUMB
//  455 u8 GetEPAddress(u8 bEpNum)
//  456 {
//  457   return(_GetEPAddress(bEpNum));
GetEPAddress:
        LDR.N    R1,??DataTable49  ;; 0x40005c00
        LDR      R0,[R1, R0, LSL #+2]
        LSLS     R0,R0,#+28
        LSRS     R0,R0,#+28
        BX       LR               ;; return
        CFI EndBlock cfiBlock38
//  458 }

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable49:
        DC32     0x40005c00
//  459 /*******************************************************************************
//  460 * Function Name  : SetEPTxAddr
//  461 * Description    : Set the endpoint Tx buffer address.
//  462 * Input          : bEpNum: Endpoint Number.
//  463 *                  wAddr: new address. 
//  464 * Output         : None.
//  465 * Return         : None.
//  466 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock39 Using cfiCommon0
        CFI Function SetEPTxAddr
        THUMB
//  467 void SetEPTxAddr(u8 bEpNum, u16 wAddr)
//  468 {
//  469   _SetEPTxAddr(bEpNum, wAddr);
SetEPTxAddr:
        LDR.N    R2,??DataTable58  ;; 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]
//  470 }
        BX       LR               ;; return
        CFI EndBlock cfiBlock39
//  471 /*******************************************************************************
//  472 * Function Name  : SetEPRxAddr
//  473 * Description    : Set the endpoint Rx buffer address.
//  474 * Input          : bEpNum: Endpoint Number.
//  475 *                  wAddr: new address.
//  476 * Output         : None.
//  477 * Return         : None.
//  478 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock40 Using cfiCommon0
        CFI Function SetEPRxAddr
        THUMB
//  479 void SetEPRxAddr(u8 bEpNum, u16 wAddr)
//  480 {
//  481   _SetEPRxAddr(bEpNum, wAddr);
SetEPRxAddr:
        LDR.N    R2,??DataTable58  ;; 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]
//  482 }
        BX       LR               ;; return
        CFI EndBlock cfiBlock40
//  483 /*******************************************************************************
//  484 * Function Name  : GetEPTxAddr
//  485 * Description    : Returns the endpoint Tx buffer address.
//  486 * Input          : bEpNum: Endpoint Number. 
//  487 * Output         : None.
//  488 * Return         : Rx buffer address. 
//  489 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock41 Using cfiCommon0
        CFI Function GetEPTxAddr
        THUMB
//  490 u16 GetEPTxAddr(u8 bEpNum)
//  491 {
//  492   return(_GetEPTxAddr(bEpNum));
GetEPTxAddr:
        LDR.N    R1,??DataTable58  ;; 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 cfiBlock41
//  493 }
//  494 /*******************************************************************************
//  495 * Function Name  : GetEPRxAddr.
//  496 * Description    : Returns the endpoint Rx buffer address.
//  497 * Input          : bEpNum: Endpoint Number. 
//  498 * Output         : None.
//  499 * Return         : Rx buffer address.
//  500 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock42 Using cfiCommon0
        CFI Function GetEPRxAddr
        THUMB
//  501 u16 GetEPRxAddr(u8 bEpNum)
//  502 {
//  503   return(_GetEPRxAddr(bEpNum));
GetEPRxAddr:
        LDR.N    R1,??DataTable58  ;; 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 cfiBlock42
//  504 }
//  505 /*******************************************************************************
//  506 * Function Name  : SetEPTxCount.
//  507 * Description    : Set the Tx count.
//  508 * Input          : bEpNum: Endpoint Number.
//  509 *                  wCount: new count value.
//  510 * Output         : None.
//  511 * Return         : None.
//  512 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock43 Using cfiCommon0
        CFI Function SetEPTxCount
        THUMB
//  513 void SetEPTxCount(u8 bEpNum, u16 wCount)
//  514 {
//  515   _SetEPTxCount(bEpNum, wCount);
SetEPTxCount:
        LDR.N    R2,??DataTable58  ;; 0x40005c50
        LDR      R2,[R2, #+0]
        UXTH     R2,R2
        ADDS     R0,R2,R0, LSL #+3
        LDR.N    R2,??DataTable90  ;; 0x40006004
        STR      R1,[R2, R0, LSL #+1]
//  516 }
        BX       LR               ;; return
        CFI EndBlock cfiBlock43

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable58:
        DC32     0x40005c50
//  517 /*******************************************************************************
//  518 * Function Name  : SetEPCountRxReg.

⌨️ 快捷键说明

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