📄 usbdriver.lst
字号:
EXTERN CODE16 (USB_USBDevIntConfig?T)
EXTERN CODE16 (USB_ConfigMaxPaketSize?T)
EXTERN CODE16 (USB_ReadTestRegister?T)
EXTERN CODE16 (USB_SetAddressEnable?T)
EXTERN CODE16 (USB_SetMode?T)
EXTERN CODE16 (USB_GetDevStatus?T)
EXTERN CODE16 (USB_SelectClrIntEndpoint?T)
EXTERN CODE16 (USB_ReadEndpoint?T)
EXTERN CODE16 (reconnect_USB?T)
EXTERN CODE16 (ep0_txdone?T)
EXTERN CODE16 (ep0_rxdone?T)
EXTERN CODE16 (control_handler?T)
EXTERN CODE32 (USB_GetDevStatus?A)
*** PUBLICS:
PUBLIC DISABLE?T
PUBLIC ENABLE?T
PUBLIC Init_USBInterrupt?T
PUBLIC USB_Initialize?T
PUBLIC USB_ConfigEndpoint?T
PUBLIC usbserve?T
PUBLIC Usb_Exception?A
PUBLIC Usb_LPService?T
PUBLIC Usb_LPService?A
PUBLIC Usb_HPService?T
PUBLIC Usb_HPService?A
PUBLIC ep1_rxdone?T
PUBLIC ep1_txdone?T
PUBLIC ep2_rxdone?T
PUBLIC ep2_txdone?T
PUBLIC USB_BusReset?T
PUBLIC USB_BusReset?A
PUBLIC USB_SuspendChange?T
PUBLIC USB_ConnectChange?T
PUBLIC Get_USB214x_FirmwareVer?T
PUBLIC GenEpBuf
PUBLIC EpBuf
PUBLIC bEPPflags
*** DATA SEGMENT '?DT0?USBDriver':
00000000 bEPPflags:
00000000 DS 4
00000004 GenEpBuf:
00000004 DS 16
00000014 EpBuf:
00000014 DS 64
*** CODE SEGMENT '?PR?USB_Initialize?T?USBDriver':
75: INT8U USB_Initialize(void)
00000000 B500 PUSH {LR}
77: USB_InitHareware(); /* 初始化硬件 Initialize hardware */
00000002 F7FF BL USB_InitHareware?T ; T=0x0001 (1)
00000004 FFFD BL USB_InitHareware?T ; T=0x0001 (2)
79: bEPPflags.value = 0; /* 置USB事件标志为0 set USB event flags to zero */
00000006 2100 MOV R1,#0x0
00000008 4800 LDR R0,=bEPPflags ; bEPPflags
0000000A 8001 STRH R1,[R0,#0x0] ; bEPPflags
81: if (USB_ReadTestRegister() != 0xA50F) /* 读测试寄存器 read test register */
0000000C F7FF BL USB_ReadTestRegister?T ; T=0x0001 (1)
0000000E FFF8 BL USB_ReadTestRegister?T ; T=0x0001 (2)
00000010 0400 LSL R0,R0,#0x10 ; USB_ReadTestRegister?T
ARM COMPILER V2.53, USBDriver 28/06/07 09:54:12 PAGE 9
00000012 0C00 LSR R0,R0,#0x10
00000014 4800 LDR R1,=0xA50F
00000016 4288 CMP R0,R1
00000018 D001 BEQ L_1 ; T=0x0000001E
82: return 1; /* 初始化失败 initialize fail */
0000001A 2001 MOV R0,#0x1
0000001C E01B B L_2 ; T=0x00000056
0000001E L_1:
84: Init_USBInterrupt(); //配置USB中断向量
0000001E F7FF BL Init_USBInterrupt?T ; T=0x0001 (1)
00000020 FFEF BL Init_USBInterrupt?T ; T=0x0001 (2)
86: USB_ConfigEndpoint(); /* 配置端点 configure the endpoint */
00000022 F7FF BL USB_ConfigEndpoint?T ; T=0x0001 (1)
00000024 FFED BL USB_ConfigEndpoint?T ; T=0x0001 (2)
87: USB_USBDevIntConfig(); /* 配置中断 configure the USB interrupt */
00000026 F7FF BL USB_USBDevIntConfig?T ; T=0x0001 (1)
00000028 FFEB BL USB_USBDevIntConfig?T ; T=0x0001 (2)
95: USB_SetMode(0x00); /* 成功传输才产生中断generate interrupt only transmit sucessfully */
0000002A 2000 MOV R0,#0x0
0000002C F7FF BL USB_SetMode?T ; T=0x0001 (1)
0000002E FFE8 BL USB_SetMode?T ; T=0x0001 (2)
101: USBEpIntClr = 0xFFFFFFFF;
00000030 4800 LDR R1,=0xFFFFFFFF
00000032 4800 LDR R0,=0xE0090038
00000034 6001 STR R1,[R0,#0x0]
102: USBEpIntEn = 0xFFFFFFFF;
00000036 4800 LDR R1,=0xFFFFFFFF
00000038 4800 LDR R0,=0xE0090034
0000003A 6001 STR R1,[R0,#0x0]
103: USBDevIntClr = 0xFFFFFFFF;
0000003C 4800 LDR R1,=0xFFFFFFFF
0000003E 4800 LDR R0,=0xE0090008
00000040 6001 STR R1,[R0,#0x0]
104: USBDevIntEn = DEV_STAT | EP_SLOW; // Enable Device Status Interrupt & EP_SLOW
00000042 210C MOV R1,#0xC
00000044 4800 LDR R0,=0xE0090004
00000046 6001 STR R1,[R0,#0x0]
105: reconnect_USB(); /* 重新连接USB reconnect the USB */
00000048 F7FF BL reconnect_USB?T ; T=0x0001 (1)
0000004A FFDA BL reconnect_USB?T ; T=0x0001 (2)
106: USB_SetAddressEnable(0,1);
0000004C 2000 MOV R0,#0x0
0000004E 2101 MOV R1,#0x1
00000050 F7FF BL USB_SetAddressEnable?T ; T=0x0001 (1)
00000052 FFD6 BL USB_SetAddressEnable?T ; T=0x0001 (2)
110: return 0; /* 初始化USB成功 Initialize USB sucessfully */
00000054 2000 MOV R0,#0x0
111: }
00000056 L_2:
00000056 BC08 POP {R3}
00000058 4718 BX R3
0000005A ENDP ; 'USB_Initialize?T'
*** CODE SEGMENT '?PR?USB_ConfigEndpoint?T?USBDriver':
120: void USB_ConfigEndpoint(void)
00000000 B500 PUSH {LR}
122: USB_ConfigMaxPaketSize(0,EP0_PACKET_SIZE);
00000002 2000 MOV R0,#0x0
00000004 2140 MOV R1,#0x40
00000006 F7FF BL USB_ConfigMaxPaketSize?T ; T=0x0001 (1)
00000008 FFFB BL USB_ConfigMaxPaketSize?T ; T=0x0001 (2)
123: USB_ConfigMaxPaketSize(1,EP0_PACKET_SIZE);
0000000A 2001 MOV R0,#0x1
0000000C 2140 MOV R1,#0x40
0000000E F7FF BL USB_ConfigMaxPaketSize?T ; T=0x0001 (1)
00000010 FFF7 BL USB_ConfigMaxPaketSize?T ; T=0x0001 (2)
125: USB_ConfigMaxPaketSize(2,EP1_PACKET_SIZE);
ARM COMPILER V2.53, USBDriver 28/06/07 09:54:12 PAGE 10
00000012 2002 MOV R0,#0x2
00000014 2110 MOV R1,#0x10
00000016 F7FF BL USB_ConfigMaxPaketSize?T ; T=0x0001 (1)
00000018 FFF3 BL USB_ConfigMaxPaketSize?T ; T=0x0001 (2)
126: USB_ConfigMaxPaketSize(3,EP1_PACKET_SIZE);
0000001A 2003 MOV R0,#0x3
0000001C 2110 MOV R1,#0x10
0000001E F7FF BL USB_ConfigMaxPaketSize?T ; T=0x0001 (1)
00000020 FFEF BL USB_ConfigMaxPaketSize?T ; T=0x0001 (2)
128: USB_ConfigMaxPaketSize(4,EP2_PACKET_SIZE);
00000022 2004 MOV R0,#0x4
00000024 2140 MOV R1,#0x40
00000026 F7FF BL USB_ConfigMaxPaketSize?T ; T=0x0001 (1)
00000028 FFEB BL USB_ConfigMaxPaketSize?T ; T=0x0001 (2)
129: USB_ConfigMaxPaketSize(5,EP2_PACKET_SIZE);
0000002A 2005 MOV R0,#0x5
0000002C 2140 MOV R1,#0x40
0000002E F7FF BL USB_ConfigMaxPaketSize?T ; T=0x0001 (1)
00000030 FFE7 BL USB_ConfigMaxPaketSize?T ; T=0x0001 (2)
132: }
00000032 BC08 POP {R3}
00000034 4718 BX R3
00000036 ENDP ; 'USB_ConfigEndpoint?T'
*** CODE SEGMENT '?PR?usbserve?T?USBDriver':
141: void usbserve(void)
00000000 B500 PUSH {LR}
143: if (bEPPflags.bits.setup_packet)
00000002 4800 LDR R0,=bEPPflags ; bEPPflags
00000004 6800 LDR R0,[R0,#0x0] ; bEPPflags
00000006 08C0 LSR R0,R0,#0x3
00000008 2101 MOV R1,#0x1
0000000A 4208 TST R0,R1
0000000C D00A BEQ L_3 ; T=0x00000024
145: DISABLE();
0000000E F7FF BL DISABLE?T ; T=0x0001 (1)
00000010 FFF7 BL DISABLE?T ; T=0x0001 (2)
146: bEPPflags.bits.setup_packet = 0;
00000012 4800 LDR R0,=bEPPflags ; bEPPflags
00000014 6801 LDR R1,[R0,#0x0] ; bEPPflags
00000016 2208 MOV R2,#0x8
00000018 4391 BIC R1,R2
0000001A 6001 STR R1,[R0,#0x0] ; bEPPflags
147: control_handler(); /* 控制传输处理 process control transmission */
0000001C F7FF BL control_handler?T ; T=0x0001 (1)
0000001E FFF0 BL control_handler?T ; T=0x0001 (2)
148: ENABLE();
00000020 F7FF BL ENABLE?T ; T=0x0001 (1)
00000022 FFEE BL ENABLE?T ; T=0x0001 (2)
149: } // if SETUP packet
00000024 L_3:
151: if (bEPPflags.bits.bus_reset)
00000024 4800 LDR R0,=bEPPflags ; bEPPflags
00000026 6800 LDR R0,[R0,#0x0] ; bEPPflags
00000028 2101 MOV R1,#0x1
0000002A 4208 TST R0,R1
0000002C D008 BEQ L_4 ; T=0x00000040
153: DISABLE();
0000002E F7FF BL DISABLE?T ; T=0x0001 (1)
00000030 FFE7 BL DISABLE?T ; T=0x0001 (2)
154: bEPPflags.bits.bus_reset = 0;
00000032 4800 LDR R0,=bEPPflags ; bEPPflags
00000034 6801 LDR R1,[R0,#0x0] ; bEPPflags
00000036 2201 MOV R2,#0x1
00000038 4391 BIC R1,R2
0000003A 6001 STR R1,[R0,#0x0] ; bEPPflags
155: ENABLE();
ARM COMPILER V2.53, USBDriver 28/06/07 09:54:12 PAGE 11
0000003C F7FF BL ENABLE?T ; T=0x0001 (1)
0000003E FFE0 BL ENABLE?T ; T=0x0001 (2)
157: } // if USB bus reset
00000040 L_4:
159: if (bEPPflags.bits.suspend)
00000040 4800 LDR R0,=bEPPflags ; bEPPflags
00000042 6800 LDR R0,[R0,#0x0] ; bEPPflags
00000044 0840 LSR R0,R0,#0x1
00000046 2101 MOV R1,#0x1
00000048 4208 TST R0,R1
0000004A D00A BEQ L_5 ; T=0x00000062
161: DISABLE();
0000004C F7FF BL DISABLE?T ; T=0x0001 (1)
0000004E FFD8 BL DISABLE?T ; T=0x0001 (2)
162: bEPPflags.bits.suspend= 0;
00000050 4800 LDR R0,=bEPPflags ; bEPPflags
00000052 6801 LDR R1,[R0,#0x0] ; bEPPflags
00000054 2202 MOV R2,#0x2
00000056 4391 BIC R1,R2
00000058 6001 STR R1,[R0,#0x0] ; bEPPflags
163: ENABLE();
0000005A F7FF BL ENABLE?T ; T=0x0001 (1)
0000005C FFD1 BL ENABLE?T ; T=0x0001 (2)
164: USB_SuspendChange();
0000005E F7FF BL USB_SuspendChange?T ; T=0x0001 (1)
00000060 FFCF BL USB_SuspendChange?T ; T=0x0001 (2)
165: } // if suspend change
00000062 L_5:
167: if (bEPPflags.bits.con_change)
00000062 4800 LDR R0,=bEPPflags ; bEPPflags
00000064 6800 LDR R0,[R0,#0x0] ; bEPPflags
00000066 0880 LSR R0,R0,#0x2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -