?? usb_regs.s79
字號:
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.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -