📄 usbgenericrequest.lst
字号:
\ 00000000 B200D0E1 LDRH R0,[R0, #+2]
\ 00000004 1EFF2FE1 BX LR ;; return
96 }
97
98 /*
99 Function: USBGenericRequest_GetIndex
100 Returns the wIndex field of the given request.
101
102 Parameters:
103 request - Pointer to a USBGenericRequest instance.
104
105 Returns:
106 Request index;
107 */
\ In section .text, align 4, keep-with-next
108 unsigned short USBGenericRequest_GetIndex(const USBGenericRequest *request)
109 {
110 return request->wIndex;
\ USBGenericRequest_GetIndex:
\ 00000000 B400D0E1 LDRH R0,[R0, #+4]
\ 00000004 1EFF2FE1 BX LR ;; return
111 }
112
113 /*
114 Function: USBGenericRequest_GetLength
115 Returns the expected length of the data phase following a request.
116
117 Parameters:
118 request - Pointer to a USBGenericRequest instance.
119
120 Returns:
121 Length of data phase.
122 */
\ In section .text, align 4, keep-with-next
123 unsigned short USBGenericRequest_GetLength(const USBGenericRequest *request)
124 {
125 return request->wLength;
\ USBGenericRequest_GetLength:
\ 00000000 B600D0E1 LDRH R0,[R0, #+6]
\ 00000004 1EFF2FE1 BX LR ;; return
126 }
127
128 /*
129 Function: USBGenericRequest_GetEndpointNumber
130 Returns the endpoint number targetted by a given request.
131
132 Parameters:
133 request - Pointer to a USBGenericRequest instance.
134
135 Returns:
136 Endpoint number.
137 */
\ In section .text, align 4, keep-with-next
138 unsigned char USBGenericRequest_GetEndpointNumber(const USBGenericRequest *request)
139 {
\ USBGenericRequest_GetEndpointNumber:
\ 00000000 10402DE9 PUSH {R4,LR}
\ 00000004 0040B0E1 MOVS R4,R0
140 return USBGenericRequest_GetIndex(request) & 0xF;
\ 00000008 0400B0E1 MOVS R0,R4
\ 0000000C ........ BL USBGenericRequest_GetIndex
\ 00000010 0F0010E2 ANDS R0,R0,#0xF
\ 00000014 1040BDE8 POP {R4,LR}
\ 00000018 1EFF2FE1 BX LR ;; return
141 }
142
143 /*
144 Function: USBGenericRequest_GetRecipient
145 Returns the intended recipient of a given request.
146
147 Parameters:
148 request - Pointer to a USBGenericRequest instance.
149
150 Returns:
151 Request recipient.
152 */
\ In section .text, align 4, keep-with-next
153 unsigned char USBGenericRequest_GetRecipient(const USBGenericRequest *request)
154 {
155 // Recipient is in bits [0..4] of the bmRequestType field
156 return request->bmRequestType & 0xF;
\ USBGenericRequest_GetRecipient:
\ 00000000 0000D0E5 LDRB R0,[R0, #+0]
\ 00000004 0F0010E2 ANDS R0,R0,#0xF
\ 00000008 1EFF2FE1 BX LR ;; return
157 }
158
159 /*
160 Function: USBGenericRequest_GetDirection
161 Returns the direction of the data transfer following the given request.
162
163 Parameters:
164 request - Pointer to a USBGenericRequest instance.
165
166 Returns:
167 Transfer direction.
168 */
\ In section .text, align 4, keep-with-next
169 unsigned char USBGenericRequest_GetDirection(const USBGenericRequest *request)
170 {
\ USBGenericRequest_GetDirection:
\ 00000000 0010B0E1 MOVS R1,R0
171 // Transfer direction is located in bit D7 of the bmRequestType field
172 if ((request->bmRequestType & 0x80) != 0) {
\ 00000004 0000D1E5 LDRB R0,[R1, #+0]
\ 00000008 800010E3 TST R0,#0x80
\ 0000000C 0100000A BEQ ??USBGenericRequest_GetDirection_0
173
174 return USBGenericRequest_IN;
\ 00000010 0100A0E3 MOV R0,#+1
\ 00000014 000000EA B ??USBGenericRequest_GetDirection_1
175 }
176 else {
177
178 return USBGenericRequest_OUT;
\ ??USBGenericRequest_GetDirection_0:
\ 00000018 0000A0E3 MOV R0,#+0
\ ??USBGenericRequest_GetDirection_1:
\ 0000001C 1EFF2FE1 BX LR ;; return
179 }
180 }
181
Maximum stack usage in bytes:
Function .cstack
-------- -------
USBGenericRequest_GetDirection 0
USBGenericRequest_GetEndpointNumber
8
USBGenericRequest_GetIndex 0
USBGenericRequest_GetLength 0
USBGenericRequest_GetRecipient 0
USBGenericRequest_GetRequest 0
USBGenericRequest_GetType 0
USBGenericRequest_GetValue 0
Section sizes:
Function/Label Bytes
-------------- -----
USBGenericRequest_GetType 20
USBGenericRequest_GetRequest 8
USBGenericRequest_GetValue 8
USBGenericRequest_GetIndex 8
USBGenericRequest_GetLength 8
USBGenericRequest_GetEndpointNumber
28
USBGenericRequest_GetRecipient 12
USBGenericRequest_GetDirection 32
124 bytes in section .text
124 bytes of CODE memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -