📄 usb_regs.txt
字号:
|L46.56|
DCD 0x40005c50
|L46.60|
DCD 0x4000600c
AREA ||i.SetEPRxStatus||, CODE, READONLY, ALIGN=2
SetEPRxStatus PROC
;;;205 *******************************************************************************/
;;;206 void SetEPRxStatus(u8 bEpNum, u16 wState)
000000 4a0a LDR r2,|L47.44|
;;;207 {
000002 b510 PUSH {r4,lr}
;;;208 _SetEPRxStatus(bEpNum, wState);
000004 eb020280 ADD r2,r2,r0,LSL #2
000008 f8d20c00 LDR r0,[r2,#0xc00]
00000c f64b748f MOV r4,#0xbf8f
000010 b280 UXTH r0,r0
000012 04cb LSLS r3,r1,#19
000014 ea000004 AND r0,r0,r4
000018 d501 BPL |L47.30|
00001a f4805080 EOR r0,r0,#0x1000
|L47.30|
00001e 0489 LSLS r1,r1,#18
000020 d501 BPL |L47.38|
000022 f4805000 EOR r0,r0,#0x2000
|L47.38|
000026 f8c20c00 STR r0,[r2,#0xc00]
;;;209 }
00002a bd10 POP {r4,pc}
;;;210
ENDP
|L47.44|
DCD 0x40005000
AREA ||i.SetEPRxValid||, CODE, READONLY, ALIGN=2
SetEPRxValid PROC
;;;275 *******************************************************************************/
;;;276 void SetEPRxValid(u8 bEpNum)
000000 4906 LDR r1,|L48.28|
;;;277 {
;;;278 _SetEPRxStatus(bEpNum, EP_RX_VALID);
000002 eb010080 ADD r0,r1,r0,LSL #2
000006 f8d01c00 LDR r1,[r0,#0xc00]
00000a f64b728f MOV r2,#0xbf8f
00000e b289 UXTH r1,r1
000010 4011 ANDS r1,r1,r2
000012 f4815140 EOR r1,r1,#0x3000
000016 f8c01c00 STR r1,[r0,#0xc00]
;;;279 }
00001a 4770 BX lr
;;;280
ENDP
|L48.28|
DCD 0x40005000
AREA ||i.SetEPTxAddr||, CODE, READONLY, ALIGN=2
SetEPTxAddr PROC
;;;466 *******************************************************************************/
;;;467 void SetEPTxAddr(u8 bEpNum, u16 wAddr)
000000 4a05 LDR r2,|L49.24|
;;;468 {
;;;469 _SetEPTxAddr(bEpNum, wAddr);
000002 f0210101 BIC r1,r1,#1
000006 6813 LDR r3,[r2,#0]
000008 4a04 LDR r2,|L49.28|
00000a b29b UXTH r3,r3
00000c eb0300c0 ADD r0,r3,r0,LSL #3
000010 f8421010 STR r1,[r2,r0,LSL #1]
;;;470 }
000014 4770 BX lr
;;;471 /*******************************************************************************
ENDP
000016 0000 DCW 0x0000
|L49.24|
DCD 0x40005c50
|L49.28|
DCD 0x40006000
AREA ||i.SetEPTxCount||, CODE, READONLY, ALIGN=2
SetEPTxCount PROC
;;;512 *******************************************************************************/
;;;513 void SetEPTxCount(u8 bEpNum, u16 wCount)
000000 4a04 LDR r2,|L50.20|
;;;514 {
;;;515 _SetEPTxCount(bEpNum, wCount);
000002 6813 LDR r3,[r2,#0]
000004 4a04 LDR r2,|L50.24|
000006 b29b UXTH r3,r3
000008 eb0300c0 ADD r0,r3,r0,LSL #3
00000c eb020040 ADD r0,r2,r0,LSL #1
;;;516 }
000010 6041 STR r1,[r0,#4]
000012 4770 BX lr
;;;517 /*******************************************************************************
ENDP
|L50.20|
DCD 0x40005c50
|L50.24|
DCD 0x40006000
AREA ||i.SetEPTxStatus||, CODE, READONLY, ALIGN=2
SetEPTxStatus PROC
;;;192 *******************************************************************************/
;;;193 void SetEPTxStatus(u8 bEpNum, u16 wState)
000000 4a0a LDR r2,|L51.44|
;;;194 {
000002 b510 PUSH {r4,lr}
;;;195 _SetEPTxStatus(bEpNum, wState);
000004 eb020280 ADD r2,r2,r0,LSL #2
000008 f8d20c00 LDR r0,[r2,#0xc00]
00000c f64874bf MOV r4,#0x8fbf
000010 b280 UXTH r0,r0
000012 06cb LSLS r3,r1,#27
000014 ea000004 AND r0,r0,r4
000018 d501 BPL |L51.30|
00001a f0800010 EOR r0,r0,#0x10
|L51.30|
00001e 0689 LSLS r1,r1,#26
000020 d501 BPL |L51.38|
000022 f0800020 EOR r0,r0,#0x20
|L51.38|
000026 f8c20c00 STR r0,[r2,#0xc00]
;;;196 }
00002a bd10 POP {r4,pc}
;;;197
ENDP
|L51.44|
DCD 0x40005000
AREA ||i.SetEPTxValid||, CODE, READONLY, ALIGN=2
SetEPTxValid PROC
;;;263 *******************************************************************************/
;;;264 void SetEPTxValid(u8 bEpNum)
000000 4906 LDR r1,|L52.28|
;;;265 {
;;;266 _SetEPTxStatus(bEpNum, EP_TX_VALID);
000002 eb010080 ADD r0,r1,r0,LSL #2
000006 f8d01c00 LDR r1,[r0,#0xc00]
00000a f64872bf MOV r2,#0x8fbf
00000e b289 UXTH r1,r1
000010 4011 ANDS r1,r1,r2
000012 f0810130 EOR r1,r1,#0x30
000016 f8c01c00 STR r1,[r0,#0xc00]
;;;267 }
00001a 4770 BX lr
;;;268
ENDP
|L52.28|
DCD 0x40005000
AREA ||i.SetEPType||, CODE, READONLY, ALIGN=2
SetEPType PROC
;;;167 *******************************************************************************/
;;;168 void SetEPType(u8 bEpNum, u16 wType)
000000 4a06 LDR r2,|L53.28|
;;;169 {
;;;170 _SetEPType(bEpNum, wType);
000002 eb020080 ADD r0,r2,r0,LSL #2
000006 f8d02c00 LDR r2,[r0,#0xc00]
00000a f648138f MOV r3,#0x898f
00000e b292 UXTH r2,r2
000010 401a ANDS r2,r2,r3
000012 430a ORRS r2,r2,r1
000014 f8c02c00 STR r2,[r0,#0xc00]
;;;171 }
000018 4770 BX lr
;;;172
ENDP
00001a 0000 DCW 0x0000
|L53.28|
DCD 0x40005000
AREA ||i.SetEP_KIND||, CODE, READONLY, ALIGN=2
SetEP_KIND PROC
;;;287 *******************************************************************************/
;;;288 void SetEP_KIND(u8 bEpNum)
000000 4906 LDR r1,|L54.28|
;;;289 {
;;;290 _SetEP_KIND(bEpNum);
000002 eb010080 ADD r0,r1,r0,LSL #2
000006 f8d01c00 LDR r1,[r0,#0xc00]
00000a f648728f MOV r2,#0x8f8f
00000e b289 UXTH r1,r1
000010 f4417180 ORR r1,r1,#0x100
000014 4011 ANDS r1,r1,r2
000016 f8c01c00 STR r1,[r0,#0xc00]
;;;291 }
00001a 4770 BX lr
;;;292
ENDP
|L54.28|
DCD 0x40005000
AREA ||i.SetISTR||, CODE, READONLY, ALIGN=2
SetISTR PROC
;;;57 *******************************************************************************/
;;;58 void SetISTR(u16 wRegValue)
000000 4901 LDR r1,|L55.8|
;;;59 {
;;;60 _SetISTR(wRegValue);
000002 6008 STR r0,[r1,#0]
;;;61 }
000004 4770 BX lr
;;;62
ENDP
000006 0000 DCW 0x0000
|L55.8|
DCD 0x40005c44
AREA ||i.Set_Status_Out||, CODE, READONLY, ALIGN=2
Set_Status_Out PROC
;;;321 *******************************************************************************/
;;;322 void Set_Status_Out(u8 bEpNum)
000000 4906 LDR r1,|L56.28|
;;;323 {
;;;324 _SetEP_KIND(bEpNum);
000002 eb010080 ADD r0,r1,r0,LSL #2
000006 f8d01c00 LDR r1,[r0,#0xc00]
00000a f648728f MOV r2,#0x8f8f
00000e b289 UXTH r1,r1
000010 f4417180 ORR r1,r1,#0x100
000014 4011 ANDS r1,r1,r2
000016 f8c01c00 STR r1,[r0,#0xc00]
;;;325 }
00001a 4770 BX lr
;;;326 /*******************************************************************************
ENDP
|L56.28|
DCD 0x40005000
AREA ||i.ToWord||, CODE, READONLY, ALIGN=1
ToWord PROC
;;;725 *******************************************************************************/
;;;726 u16 ToWord(u8 bh, u8 bl)
000000 ea412000 ORR r0,r1,r0,LSL #8
;;;727 {
;;;728 u16 wRet;
;;;729 wRet = (u16)bl | ((u16)bh << 8);
;;;730 return(wRet);
;;;731 }
000004 4770 BX lr
;;;732 /*******************************************************************************
ENDP
AREA ||i.ToggleDTOG_RX||, CODE, READONLY, ALIGN=2
ToggleDTOG_RX PROC
;;;398 *******************************************************************************/
;;;399 void ToggleDTOG_RX(u8 bEpNum)
000000 4906 LDR r1,|L58.28|
;;;400 {
;;;401 _ToggleDTOG_RX(bEpNum);
000002 eb010080 ADD r0,r1,r0,LSL #2
000006 f8d01c00 LDR r1,[r0,#0xc00]
00000a f648728f MOV r2,#0x8f8f
00000e b289 UXTH r1,r1
000010 4011 ANDS r1,r1,r2
000012 f4414180 ORR r1,r1,#0x4000
000016 f8c01c00 STR r1,[r0,#0xc00]
;;;402 }
00001a 4770 BX lr
;;;403 /*******************************************************************************
ENDP
|L58.28|
DCD 0x40005000
AREA ||i.ToggleDTOG_TX||, CODE, READONLY, ALIGN=2
ToggleDTOG_TX PROC
;;;409 *******************************************************************************/
;;;410 void ToggleDTOG_TX(u8 bEpNum)
000000 4906 LDR r1,|L59.28|
;;;411 {
;;;412 _ToggleDTOG_TX(bEpNum);
000002 eb010080 ADD r0,r1,r0,LSL #2
000006 f8d01c00 LDR r1,[r0,#0xc00]
00000a f648728f MOV r2,#0x8f8f
00000e b289 UXTH r1,r1
000010 4011 ANDS r1,r1,r2
000012 f0410140 ORR r1,r1,#0x40
000016 f8c01c00 STR r1,[r0,#0xc00]
;;;413 }
00001a 4770 BX lr
;;;414 /*******************************************************************************
ENDP
|L59.28|
DCD 0x40005000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -