📄 usb_regs.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 938] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\usb_regs.o --depend=.\Obj\usb_regs.d --device=DARMSTM --apcs=interwork -O3 -I.\Code\FATSystem\INC -I.\Code\Library\INC -I.\Code\SDCard\INC -I.\Code\Speaker\INC -I.\Code\System\INC -I.\Code\USBMassStorage\INC -I.\Code\User\INC -I.\Code\VS1003\INC -ID:\Keil\ARM\INC\ST\STM32F10x --omf_browse=.\Obj\usb_regs.crf Code\USBMassStorage\SRC\usb_regs.c]
THUMB
AREA ||i.SetCNTR||, CODE, READONLY, ALIGN=2
SetCNTR PROC
;;;34 void SetCNTR(u16 wRegValue)
;;;35 {
000000 4901 LDR r1,|L1.8|
;;;36 _SetCNTR(wRegValue);
000002 6008 STR r0,[r1,#0]
;;;37 }
000004 4770 BX lr
;;;38
ENDP
000006 0000 DCW 0x0000
|L1.8|
000008 40005c40 DCD 0x40005c40
AREA ||i.GetCNTR||, CODE, READONLY, ALIGN=2
GetCNTR PROC
;;;46 u16 GetCNTR(void)
;;;47 {
000000 4801 LDR r0,|L2.8|
;;;48 return(_GetCNTR());
000002 6800 LDR r0,[r0,#0]
000004 b280 UXTH r0,r0
;;;49 }
000006 4770 BX lr
;;;50
ENDP
|L2.8|
000008 40005c40 DCD 0x40005c40
AREA ||i.SetISTR||, CODE, READONLY, ALIGN=2
SetISTR PROC
;;;58 void SetISTR(u16 wRegValue)
;;;59 {
000000 4901 LDR r1,|L3.8|
;;;60 _SetISTR(wRegValue);
000002 6008 STR r0,[r1,#0]
;;;61 }
000004 4770 BX lr
;;;62
ENDP
000006 0000 DCW 0x0000
|L3.8|
000008 40005c44 DCD 0x40005c44
AREA ||i.GetISTR||, CODE, READONLY, ALIGN=2
GetISTR PROC
;;;70 u16 GetISTR(void)
;;;71 {
000000 4801 LDR r0,|L4.8|
;;;72 return(_GetISTR());
000002 6800 LDR r0,[r0,#0]
000004 b280 UXTH r0,r0
;;;73 }
000006 4770 BX lr
;;;74
ENDP
|L4.8|
000008 40005c44 DCD 0x40005c44
AREA ||i.GetFNR||, CODE, READONLY, ALIGN=2
GetFNR PROC
;;;82 u16 GetFNR(void)
;;;83 {
000000 4801 LDR r0,|L5.8|
;;;84 return(_GetFNR());
000002 6800 LDR r0,[r0,#0]
000004 b280 UXTH r0,r0
;;;85 }
000006 4770 BX lr
;;;86
ENDP
|L5.8|
000008 40005c48 DCD 0x40005c48
AREA ||i.SetDADDR||, CODE, READONLY, ALIGN=2
SetDADDR PROC
;;;94 void SetDADDR(u16 wRegValue)
;;;95 {
000000 4901 LDR r1,|L6.8|
;;;96 _SetDADDR(wRegValue);
000002 6008 STR r0,[r1,#0]
;;;97 }
000004 4770 BX lr
;;;98
ENDP
000006 0000 DCW 0x0000
|L6.8|
000008 40005c4c DCD 0x40005c4c
AREA ||i.GetDADDR||, CODE, READONLY, ALIGN=2
GetDADDR PROC
;;;106 u16 GetDADDR(void)
;;;107 {
000000 4801 LDR r0,|L7.8|
;;;108 return(_GetDADDR());
000002 6800 LDR r0,[r0,#0]
000004 b280 UXTH r0,r0
;;;109 }
000006 4770 BX lr
;;;110
ENDP
|L7.8|
000008 40005c4c DCD 0x40005c4c
AREA ||i.SetBTABLE||, CODE, READONLY, ALIGN=2
SetBTABLE PROC
;;;119 {
;;;120 _SetBTABLE(wRegValue);
000000 4902 LDR r1,|L8.12|
000002 f0200007 BIC r0,r0,#7
000006 6008 STR r0,[r1,#0]
;;;121 }
000008 4770 BX lr
;;;122
ENDP
00000a 0000 DCW 0x0000
|L8.12|
00000c 40005c50 DCD 0x40005c50
AREA ||i.GetBTABLE||, CODE, READONLY, ALIGN=2
GetBTABLE PROC
;;;130 u16 GetBTABLE(void)
;;;131 {
000000 4801 LDR r0,|L9.8|
;;;132 return(_GetBTABLE());
000002 6800 LDR r0,[r0,#0]
000004 b280 UXTH r0,r0
;;;133 }
000006 4770 BX lr
;;;134
ENDP
|L9.8|
000008 40005c50 DCD 0x40005c50
AREA ||i.SetENDPOINT||, CODE, READONLY, ALIGN=2
SetENDPOINT PROC
;;;144 {
;;;145 _SetENDPOINT(bEpNum, wRegValue);
000000 4a02 LDR r2,|L10.12|
000002 eb020080 ADD r0,r2,r0,LSL #2
000006 f8c01c00 STR r1,[r0,#0xc00]
;;;146 }
00000a 4770 BX lr
;;;147
ENDP
|L10.12|
00000c 40005000 DCD 0x40005000
AREA ||i.GetENDPOINT||, CODE, READONLY, ALIGN=2
GetENDPOINT PROC
000000 4903 LDR r1,|L11.16|
000002 eb010080 ADD r0,r1,r0,LSL #2
000006 f8d00c00 LDR r0,[r0,#0xc00]
00000a b280 UXTH r0,r0
00000c 4770 BX lr
ENDP
00000e 0000 DCW 0x0000
|L11.16|
000010 40005000 DCD 0x40005000
AREA ||i.SetEPType||, CODE, READONLY, ALIGN=2
SetEPType PROC
;;;169 {
;;;170 _SetEPType(bEpNum, wType);
000000 4a06 LDR r2,|L12.28|
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
|L12.28|
00001c 40005000 DCD 0x40005000
AREA ||i.GetEPType||, CODE, READONLY, ALIGN=2
GetEPType PROC
;;;181 {
;;;182 return(_GetEPType(bEpNum));
000000 4904 LDR r1,|L13.20|
000002 eb010080 ADD r0,r1,r0,LSL #2
000006 f8d00c00 LDR r0,[r0,#0xc00]
00000a f3c02041 UBFX r0,r0,#9,#2
00000e 0240 LSLS r0,r0,#9
;;;183 }
000010 4770 BX lr
;;;184
ENDP
000012 0000 DCW 0x0000
|L13.20|
000014 40005000 DCD 0x40005000
AREA ||i.SetEPTxStatus||, CODE, READONLY, ALIGN=2
SetEPTxStatus PROC
;;;194 {
;;;195 _SetEPTxStatus(bEpNum, wState);
000000 4a0a LDR r2,|L14.44|
000002 b510 PUSH {r4,lr} ;194
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 |L14.30|
00001a f0800010 EOR r0,r0,#0x10
|L14.30|
00001e 0689 LSLS r1,r1,#26
000020 d501 BPL |L14.38|
000022 f0800020 EOR r0,r0,#0x20
|L14.38|
000026 f8c20c00 STR r0,[r2,#0xc00]
;;;196 }
00002a bd10 POP {r4,pc}
;;;197
ENDP
|L14.44|
00002c 40005000 DCD 0x40005000
AREA ||i.SetEPRxStatus||, CODE, READONLY, ALIGN=2
SetEPRxStatus PROC
;;;207 {
;;;208 _SetEPRxStatus(bEpNum, wState);
000000 4a0a LDR r2,|L15.44|
000002 b510 PUSH {r4,lr} ;207
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 |L15.30|
00001a f4805080 EOR r0,r0,#0x1000
|L15.30|
00001e 0489 LSLS r1,r1,#18
000020 d501 BPL |L15.38|
000022 f4805000 EOR r0,r0,#0x2000
|L15.38|
000026 f8c20c00 STR r0,[r2,#0xc00]
;;;209 }
00002a bd10 POP {r4,pc}
;;;210
ENDP
|L15.44|
00002c 40005000 DCD 0x40005000
AREA ||i.SetDouBleBuffEPStall||, CODE, READONLY, ALIGN=2
SetDouBleBuffEPStall PROC
;;;219 void SetDouBleBuffEPStall(u8 bEpNum, u8 bDir)
;;;220 {
000000 b500 PUSH {lr}
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
00000a 4907 LDR r1,|L16.40|
;;;223 if (bDir == EP_DBUF_OUT)
00000c 2a01 CMP r2,#1
00000e eb010183 ADD r1,r1,r3,LSL #2 ;222
000012 d102 BNE |L16.26|
;;;224 { /* OUT double buffered endpoint */
;;;225 _SetENDPOINT(bEpNum, Endpoint_DTOG_Status & ~EPRX_DTOG1);
000014 f4205080 BIC r0,r0,#0x1000
000018 e003 B |L16.34|
|L16.26|
;;;226 }
;;;227 else if (bDir == EP_DBUF_IN)
00001a 2a02 CMP r2,#2
00001c d103 BNE |L16.38|
;;;228 { /* IN double buffered endpoint */
;;;229 _SetENDPOINT(bEpNum, Endpoint_DTOG_Status & ~EPTX_DTOG1);
00001e f0200010 BIC r0,r0,#0x10
|L16.34|
000022 f8c10c00 STR r0,[r1,#0xc00] ;225
|L16.38|
;;;230 }
;;;231 }
000026 bd00 POP {pc}
;;;232
ENDP
|L16.40|
000028 40005000 DCD 0x40005000
AREA ||i.GetEPTxStatus||, CODE, READONLY, ALIGN=2
GetEPTxStatus PROC
;;;241 {
;;;242 return(_GetEPTxStatus(bEpNum));
000000 4904 LDR r1,|L17.20|
000002 eb010080 ADD r0,r1,r0,LSL #2
000006 f8d00c00 LDR r0,[r0,#0xc00]
00000a f3c01001 UBFX r0,r0,#4,#2
00000e 0100 LSLS r0,r0,#4
;;;243 }
000010 4770 BX lr
;;;244
ENDP
000012 0000 DCW 0x0000
|L17.20|
000014 40005000 DCD 0x40005000
AREA ||i.GetEPRxStatus||, CODE, READONLY, ALIGN=2
GetEPRxStatus PROC
;;;253 {
;;;254 return(_GetEPRxStatus(bEpNum));
000000 4904 LDR r1,|L18.20|
000002 eb010080 ADD r0,r1,r0,LSL #2
000006 f8d00c00 LDR r0,[r0,#0xc00]
00000a f3c03001 UBFX r0,r0,#12,#2
00000e 0300 LSLS r0,r0,#12
;;;255 }
000010 4770 BX lr
;;;256
ENDP
000012 0000 DCW 0x0000
|L18.20|
000014 40005000 DCD 0x40005000
AREA ||i.SetEPTxValid||, CODE, READONLY, ALIGN=2
SetEPTxValid PROC
;;;265 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -