📄 usb_regs.txt
字号:
AREA ||i.GetFNR||, CODE, READONLY, ALIGN=2
GetFNR PROC
;;;81 *******************************************************************************/
;;;82 u16 GetFNR(void)
000000 4801 LDR r0,|L27.8|
;;;83 {
;;;84 return(_GetFNR());
000002 6800 LDR r0,[r0,#0]
000004 b280 UXTH r0,r0
;;;85 }
000006 4770 BX lr
;;;86
ENDP
|L27.8|
DCD 0x40005c48
AREA ||i.GetISTR||, CODE, READONLY, ALIGN=2
GetISTR PROC
;;;69 *******************************************************************************/
;;;70 u16 GetISTR(void)
000000 4801 LDR r0,|L28.8|
;;;71 {
;;;72 return(_GetISTR());
000002 6800 LDR r0,[r0,#0]
000004 b280 UXTH r0,r0
;;;73 }
000006 4770 BX lr
;;;74
ENDP
|L28.8|
DCD 0x40005c44
AREA ||i.GetRxStallStatus||, CODE, READONLY, ALIGN=2
GetRxStallStatus PROC
;;;365 *******************************************************************************/
;;;366 u16 GetRxStallStatus(u8 bEpNum)
000000 4905 LDR r1,|L29.24|
;;;367 {
;;;368 return(_GetRxStallStatus(bEpNum));
000002 eb010080 ADD r0,r1,r0,LSL #2
000006 f8d00c00 LDR r0,[r0,#0xc00]
00000a f3c03001 UBFX r0,r0,#12,#2
00000e 2801 CMP r0,#1
000010 d000 BEQ |L29.20|
000012 2000 MOVS r0,#0
|L29.20|
;;;369 }
000014 4770 BX lr
;;;370 /*******************************************************************************
ENDP
000016 0000 DCW 0x0000
|L29.24|
DCD 0x40005000
AREA ||i.GetTxStallStatus||, CODE, READONLY, ALIGN=2
GetTxStallStatus PROC
;;;354 *******************************************************************************/
;;;355 u16 GetTxStallStatus(u8 bEpNum)
000000 4905 LDR r1,|L30.24|
;;;356 {
;;;357 return(_GetTxStallStatus(bEpNum));
000002 eb010080 ADD r0,r1,r0,LSL #2
000006 f8d00c00 LDR r0,[r0,#0xc00]
00000a f3c01001 UBFX r0,r0,#4,#2
00000e 2801 CMP r0,#1
000010 d000 BEQ |L30.20|
000012 2000 MOVS r0,#0
|L30.20|
;;;358 }
000014 4770 BX lr
;;;359 /*******************************************************************************
ENDP
000016 0000 DCW 0x0000
|L30.24|
DCD 0x40005000
AREA ||i.SetBTABLE||, CODE, READONLY, ALIGN=2
SetBTABLE PROC
;;;117 *******************************************************************************/
;;;118 void SetBTABLE(u16 wRegValue)
000000 4902 LDR r1,|L31.12|
;;;119 {
;;;120 _SetBTABLE(wRegValue);
000002 f0200007 BIC r0,r0,#7
000006 6008 STR r0,[r1,#0]
;;;121 }
000008 4770 BX lr
;;;122
ENDP
00000a 0000 DCW 0x0000
|L31.12|
DCD 0x40005c50
AREA ||i.SetCNTR||, CODE, READONLY, ALIGN=2
SetCNTR PROC
;;;33 *******************************************************************************/
;;;34 void SetCNTR(u16 wRegValue)
000000 4901 LDR r1,|L32.8|
;;;35 {
;;;36 _SetCNTR(wRegValue);
000002 6008 STR r0,[r1,#0]
;;;37 }
000004 4770 BX lr
;;;38
ENDP
000006 0000 DCW 0x0000
|L32.8|
DCD 0x40005c40
AREA ||i.SetDADDR||, CODE, READONLY, ALIGN=2
SetDADDR PROC
;;;93 *******************************************************************************/
;;;94 void SetDADDR(u16 wRegValue)
000000 4901 LDR r1,|L33.8|
;;;95 {
;;;96 _SetDADDR(wRegValue);
000002 6008 STR r0,[r1,#0]
;;;97 }
000004 4770 BX lr
;;;98
ENDP
000006 0000 DCW 0x0000
|L33.8|
DCD 0x40005c4c
AREA ||i.SetDouBleBuffEPStall||, CODE, READONLY, ALIGN=2
SetDouBleBuffEPStall PROC
;;;218 *******************************************************************************/
;;;219 void SetDouBleBuffEPStall(u8 bEpNum, u8 bDir)
000000 b500 PUSH {lr}
;;;220 {
000002 4603 MOV r3,r0
000004 460a MOV r2,r1
;;;221 u16 Endpoint_DTOG_Status;
;;;222 Endpoint_DTOG_Status = GetENDPOINT(bEpNum);
000006 f7fffffe BL GetENDPOINT
;;;223 if (bDir == EP_DBUF_OUT)
;;;224 { /* OUT double buffered endpoint */
;;;225 _SetENDPOINT(bEpNum, Endpoint_DTOG_Status & ~EPRX_DTOG1);
00000a 4907 LDR r1,|L34.40|
00000c 2a01 CMP r2,#1 ;223
00000e eb010183 ADD r1,r1,r3,LSL #2
000012 d102 BNE |L34.26|
000014 f4205080 BIC r0,r0,#0x1000
000018 e003 B |L34.34|
|L34.26|
;;;226 }
;;;227 else if (bDir == EP_DBUF_IN)
00001a 2a02 CMP r2,#2
00001c d103 BNE |L34.38|
;;;228 { /* IN double buffered endpoint */
;;;229 _SetENDPOINT(bEpNum, Endpoint_DTOG_Status & ~EPTX_DTOG1);
00001e f0200010 BIC r0,r0,#0x10
|L34.34|
000022 f8c10c00 STR r0,[r1,#0xc00] ;225
|L34.38|
;;;230 }
;;;231 }
000026 bd00 POP {pc}
;;;232
ENDP
|L34.40|
DCD 0x40005000
AREA ||i.SetENDPOINT||, CODE, READONLY, ALIGN=2
SetENDPOINT PROC
;;;142 *******************************************************************************/
;;;143 void SetENDPOINT(u8 bEpNum, u16 wRegValue)
000000 4a02 LDR r2,|L35.12|
;;;144 {
;;;145 _SetENDPOINT(bEpNum, wRegValue);
000002 eb020080 ADD r0,r2,r0,LSL #2
000006 f8c01c00 STR r1,[r0,#0xc00]
;;;146 }
00000a 4770 BX lr
;;;147
ENDP
|L35.12|
DCD 0x40005000
AREA ||i.SetEPAddress||, CODE, READONLY, ALIGN=2
SetEPAddress PROC
;;;443 *******************************************************************************/
;;;444 void SetEPAddress(u8 bEpNum, u8 bAddr)
000000 4a06 LDR r2,|L36.28|
;;;445 {
;;;446 _SetEPAddress(bEpNum, bAddr);
000002 eb020080 ADD r0,r2,r0,LSL #2
000006 f8d02c00 LDR r2,[r0,#0xc00]
00000a f648738f MOV r3,#0x8f8f
00000e b292 UXTH r2,r2
000010 401a ANDS r2,r2,r3
000012 430a ORRS r2,r2,r1
000014 f8c02c00 STR r2,[r0,#0xc00]
;;;447 }
000018 4770 BX lr
;;;448 /*******************************************************************************
ENDP
00001a 0000 DCW 0x0000
|L36.28|
DCD 0x40005000
AREA ||i.SetEPCountRxReg||, CODE, READONLY, ALIGN=1
SetEPCountRxReg PROC
;;;524 *******************************************************************************/
;;;525 void SetEPCountRxReg(u32 *pdwReg, u16 wCount)
000000 293e CMP r1,#0x3e
;;;526 {
;;;527 _SetEPCountRxReg(dwReg, wCount);
000002 d909 BLS |L37.24|
000004 094a LSRS r2,r1,#5
000006 06c9 LSLS r1,r1,#27
000008 d101 BNE |L37.14|
00000a 1e52 SUBS r2,r2,#1
00000c b292 UXTH r2,r2
|L37.14|
00000e f44f4100 MOV r1,#0x8000
000012 ea412182 ORR r1,r1,r2,LSL #10
000016 e005 B |L37.36|
|L37.24|
000018 084a LSRS r2,r1,#1
00001a 07c9 LSLS r1,r1,#31
00001c d001 BEQ |L37.34|
00001e 1c52 ADDS r2,r2,#1
000020 b292 UXTH r2,r2
|L37.34|
000022 0291 LSLS r1,r2,#10
|L37.36|
000024 6001 STR r1,[r0,#0]
;;;528 }
000026 4770 BX lr
;;;529 /*******************************************************************************
ENDP
AREA ||i.SetEPDblBuf0Addr||, CODE, READONLY, ALIGN=2
SetEPDblBuf0Addr PROC
;;;583 *******************************************************************************/
;;;584 void SetEPDblBuf0Addr(u8 bEpNum, u16 wBuf0Addr)
000000 4a05 LDR r2,|L38.24|
;;;585 {
;;;586 _SetEPDblBuf0Addr(bEpNum, wBuf0Addr);
000002 f0210101 BIC r1,r1,#1
000006 6813 LDR r3,[r2,#0]
000008 4a04 LDR r2,|L38.28|
00000a b29b UXTH r3,r3
00000c eb0300c0 ADD r0,r3,r0,LSL #3
000010 f8421010 STR r1,[r2,r0,LSL #1]
;;;587 }
000014 4770 BX lr
;;;588 /*******************************************************************************
ENDP
000016 0000 DCW 0x0000
|L38.24|
DCD 0x40005c50
|L38.28|
DCD 0x40006000
AREA ||i.SetEPDblBuf0Count||, CODE, READONLY, ALIGN=2
SetEPDblBuf0Count PROC
;;;641 *******************************************************************************/
;;;642 void SetEPDblBuf0Count(u8 bEpNum, u8 bDir, u16 wCount)
000000 4b15 LDR r3,|L39.88|
;;;643 {
;;;644 _SetEPDblBuf0Count(bEpNum, bDir, wCount);
000002 2901 CMP r1,#1
000004 d11b BNE |L39.62|
000006 f8d31c50 LDR r1,[r3,#0xc50]
00000a 4b14 LDR r3,|L39.92|
00000c b289 UXTH r1,r1
00000e eb0100c0 ADD r0,r1,r0,LSL #3
000012 eb030140 ADD r1,r3,r0,LSL #1
000016 2a3e CMP r2,#0x3e
000018 d909 BLS |L39.46|
00001a 0950 LSRS r0,r2,#5
00001c 06d2 LSLS r2,r2,#27
00001e d101 BNE |L39.36|
000020 1e40 SUBS r0,r0,#1
000022 b280 UXTH r0,r0
|L39.36|
000024 f44f4200 MOV r2,#0x8000
000028 ea422080 ORR r0,r2,r0,LSL #10
00002c e005 B |L39.58|
|L39.46|
00002e 0850 LSRS r0,r2,#1
000030 07d2 LSLS r2,r2,#31
000032 d001 BEQ |L39.56|
000034 1c40 ADDS r0,r0,#1
000036 b280 UXTH r0,r0
|L39.56|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -