📄 usb_core.lst
字号:
1 .syntax unified
2 .cpu cortex-m3
3 .fpu softvfp
4 .eabi_attribute 20, 1
5 .eabi_attribute 21, 1
6 .eabi_attribute 23, 3
7 .eabi_attribute 24, 1
8 .eabi_attribute 25, 1
9 .eabi_attribute 26, 1
10 .eabi_attribute 30, 4
11 .eabi_attribute 18, 4
12 .thumb
13 .file "usb_core.c"
21 .Ltext0:
22 .section .text.Standard_GetConfiguration,"ax",%progbits
23 .align 2
24 .global Standard_GetConfiguration
25 .thumb
26 .thumb_func
28 Standard_GetConfiguration:
29 .LFB26:
30 .file 1 "lib/STM32_USB-FS-Device_Driver/src/usb_core.c"
1:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
2:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * File Name : usb_core.c
3:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Author : MCD Application Team
4:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Version : V3.0.1
5:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Date : 04/27/2009
6:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Description : Standard protocol processing (USB v2.0)
7:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** ********************************************************************************
8:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
9:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
10:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
11:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
12:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
13:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
14:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *******************************************************************************/
15:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
16:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /* Includes ------------------------------------------------------------------*/
17:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** #include "usb_lib.h"
18:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /* Private typedef -----------------------------------------------------------*/
19:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /* Private define ------------------------------------------------------------*/
20:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** #define ValBit(VAR,Place) (VAR & (1 << Place))
21:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** #define SetBit(VAR,Place) (VAR |= (1 << Place))
22:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** #define ClrBit(VAR,Place) (VAR &= ((1 << Place) ^ 255))
23:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
24:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** #define Send0LengthData() { _SetEPTxCount(ENDP0, 0); \
25:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** vSetEPTxStatus(EP_TX_VALID); \
26:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
27:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
28:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** #define vSetEPRxStatus(st) (SaveRState = st)
29:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** #define vSetEPTxStatus(st) (SaveTState = st)
30:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
31:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** #define USB_StatusIn() Send0LengthData()
32:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** #define USB_StatusOut() vSetEPRxStatus(EP_RX_VALID)
33:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
34:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** #define StatusInfo0 StatusInfo.bw.bb1 /* Reverse bb0 & bb1 */
35:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** #define StatusInfo1 StatusInfo.bw.bb0
36:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
37:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /* Private macro -------------------------------------------------------------*/
38:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /* Private variables ---------------------------------------------------------*/
39:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** uint16_t_uint8_t StatusInfo;
40:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** bool Data_Mul_MaxPacketSize = FALSE;
41:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /* Private function prototypes -----------------------------------------------*/
42:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** static void DataStageOut(void);
43:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** static void DataStageIn(void);
44:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** static void NoData_Setup0(void);
45:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** static void Data_Setup0(void);
46:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /* Private functions ---------------------------------------------------------*/
47:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
48:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /*******************************************************************************
49:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Function Name : Standard_GetConfiguration.
50:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Description : Return the current configuration variable address.
51:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Input : Length - How many bytes are needed.
52:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Output : None.
53:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Return : Return 1 , if the request is invalid when "Length" is 0.
54:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Return "Buffer" if the "Length" is not 0.
55:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *******************************************************************************/
56:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** uint8_t *Standard_GetConfiguration(uint16_t Length)
57:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
31 .loc 1 57 0
32 @ args = 0, pretend = 0, frame = 0
33 @ frame_needed = 0, uses_anonymous_args = 0
34 .LVL0:
35 0000 10B5 push {r4, lr}
36 .LCFI0:
37 0002 074C ldr r4, .L5
58:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** if (Length == 0)
38 .loc 1 58 0
39 0004 20B9 cbnz r0, .L2
59:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
60:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** pInformation->Ctrl_Info.Usb_wLength =
40 .loc 1 60 0
41 0006 2368 ldr r3, [r4, #0]
42 0008 4FF00101 mov r1, #1 @ movhi
43 000c 1982 strh r1, [r3, #16] @ movhi
44 000e 06E0 b .L3
45 .L2:
61:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** sizeof(pInformation->Current_Configuration);
62:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** return 0;
63:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
64:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** pUser_Standard_Requests->User_GetConfiguration();
46 .loc 1 64 0
47 0010 044B ldr r3, .L5+4
48 0012 1B68 ldr r3, [r3, #0]
49 0014 1B68 ldr r3, [r3, #0]
50 0016 9847 blx r3
51 .LVL1:
65:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** return (uint8_t *)&pInformation->Current_Configuration;
52 .loc 1 65 0
53 0018 2368 ldr r3, [r4, #0]
54 001a 03F10A00 add r0, r3, #10
55 .LVL2:
56 .L3:
57 .LVL3:
66:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
58 .loc 1 66 0
59 001e 10BD pop {r4, pc}
60 .L6:
61 .align 2
62 .L5:
63 0020 00000000 .word pInformation
64 0024 00000000 .word pUser_Standard_Requests
65 .LFE26:
67 .section .text.Standard_SetConfiguration,"ax",%progbits
68 .align 2
69 .global Standard_SetConfiguration
70 .thumb
71 .thumb_func
73 Standard_SetConfiguration:
74 .LFB27:
67:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
68:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /*******************************************************************************
69:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Function Name : Standard_SetConfiguration.
70:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Description : This routine is called to set the configuration value
71:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Then each class should configure device themself.
72:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Input : None.
73:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Output : None.
74:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Return : Return USB_SUCCESS, if the request is performed.
75:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Return USB_UNSUPPORT, if the request is invalid.
76:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *******************************************************************************/
77:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** RESULT Standard_SetConfiguration(void)
78:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
75 .loc 1 78 0
76 @ args = 0, pretend = 0, frame = 0
77 @ frame_needed = 0, uses_anonymous_args = 0
78 0000 10B5 push {r4, lr}
79 .LCFI1:
79:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
80:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** if ((pInformation->USBwValue0 <=
80 .loc 1 80 0
81 0002 0A4B ldr r3, .L11
82 0004 1A68 ldr r2, [r3, #0]
83 0006 0A4B ldr r3, .L11+4
84 0008 D178 ldrb r1, [r2, #3] @ zero_extendqisi2
85 000a 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
86 000c 8B42 cmp r3, r1
87 000e 0AD3 bcc .L8
88 0010 9378 ldrb r3, [r2, #2] @ zero_extendqisi2
89 0012 43B9 cbnz r3, .L8
90 0014 9488 ldrh r4, [r2, #4]
91 0016 34B9 cbnz r4, .L8
81:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** Device_Table.Total_Configuration) && (pInformation->USBwValue1 == 0)
82:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** && (pInformation->USBwIndex == 0)) /*call Back usb spec 2.0*/
83:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
84:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** pInformation->Current_Configuration = pInformation->USBwValue0;
85:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** pUser_Standard_Requests->User_SetConfiguration();
92 .loc 1 85 0
93 0018 064B ldr r3, .L11+8
94 .loc 1 84 0
95 001a 9172 strb r1, [r2, #10]
96 .loc 1 85 0
97 001c 1B68 ldr r3, [r3, #0]
98 001e 5B68 ldr r3, [r3, #4]
99 0020 9847 blx r3
100 0022 2046 mov r0, r4
101 0024 00E0 b .L9
102 .L8:
86:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** return USB_SUCCESS;
103 .loc 1 86 0
104 0026 0220 movs r0, #2
105 .L9:
87:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
88:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** else
89:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
90:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** return USB_UNSUPPORT;
91:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
92:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
106 .loc 1 92 0
107 0028 10BD pop {r4, pc}
108 .L12:
109 002a C046 .align 2
110 .L11:
111 002c 00000000 .word pInformation
112 0030 00000000 .word Device_Table
113 0034 00000000 .word pUser_Standard_Requests
114 .LFE27:
116 .section .text.Standard_GetInterface,"ax",%progbits
117 .align 2
118 .global Standard_GetInterface
119 .thumb
120 .thumb_func
122 Standard_GetInterface:
123 .LFB28:
93:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
94:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /*******************************************************************************
95:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Function Name : Standard_GetInterface.
96:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Description : Return the Alternate Setting of the current interface.
97:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Input : Length - How many bytes are needed.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -