📄 usbgenericrequest.lst
字号:
76
77 //------------------------------------------------------------------------------
78 /// Returns the wIndex field of the given request.
79 /// \param request Pointer to a USBGenericRequest instance.
80 /// \return Request index;
81 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
82 unsigned short USBGenericRequest_GetIndex(const USBGenericRequest *request)
83 {
84 return request->wIndex;
\ USBGenericRequest_GetIndex:
\ 00000000 B400D0E1 LDRH R0,[R0, #+4]
\ 00000004 1EFF2FE1 BX LR ;; return
85 }
86
87 //------------------------------------------------------------------------------
88 /// Returns the expected length of the data phase following a request.
89 /// \param request Pointer to a USBGenericRequest instance.
90 /// \return Length of data phase.
91 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
92 unsigned short USBGenericRequest_GetLength(const USBGenericRequest *request)
93 {
94 return request->wLength;
\ USBGenericRequest_GetLength:
\ 00000000 B600D0E1 LDRH R0,[R0, #+6]
\ 00000004 1EFF2FE1 BX LR ;; return
95 }
96
97 //------------------------------------------------------------------------------
98 /// Returns the endpoint number targetted by a given request.
99 /// \param request Pointer to a USBGenericRequest instance.
100 /// \return Endpoint number.
101 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
102 unsigned char USBGenericRequest_GetEndpointNumber(
103 const USBGenericRequest *request)
104 {
\ USBGenericRequest_GetEndpointNumber:
\ 00000000 01402DE9 PUSH {R0,LR}
105 return USBGenericRequest_GetIndex(request) & 0xF;
\ 00000004 ........ BL USBGenericRequest_GetIndex
\ 00000008 0F0000E2 AND R0,R0,#0xF
\ 0000000C 0050BDE8 POP {R12,LR}
\ 00000010 1EFF2FE1 BX LR ;; return
106 }
107
108 //------------------------------------------------------------------------------
109 /// Returns the intended recipient of a given request.
110 /// \param request Pointer to a USBGenericRequest instance.
111 /// \return Request recipient.
112 /// \sa "USB Request Recipients"
113 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
114 unsigned char USBGenericRequest_GetRecipient(const USBGenericRequest *request)
115 {
116 // Recipient is in bits [0..4] of the bmRequestType field
117 return request->bmRequestType & 0xF;
\ USBGenericRequest_GetRecipient:
\ 00000000 0000D0E5 LDRB R0,[R0, #+0]
\ 00000004 0F0000E2 AND R0,R0,#0xF
\ 00000008 1EFF2FE1 BX LR ;; return
118 }
119
120 //------------------------------------------------------------------------------
121 /// Returns the direction of the data transfer following the given request.
122 /// \param request Pointer to a USBGenericRequest instance.
123 /// \return Transfer direction.
124 /// \sa "USB Request Directions"
125 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
126 unsigned char USBGenericRequest_GetDirection(const USBGenericRequest *request)
127 {
128 // Transfer direction is located in bit D7 of the bmRequestType field
129 if ((request->bmRequestType & 0x80) != 0) {
\ USBGenericRequest_GetDirection:
\ 00000000 0000D0E5 LDRB R0,[R0, #+0]
\ 00000004 800010E3 TST R0,#0x80
\ 00000008 0000A003 MOVEQ R0,#+0
130
131 return USBGenericRequest_IN;
\ 0000000C 0100A013 MOVNE R0,#+1
\ 00000010 1EFF2FE1 BX LR
132 }
133 else {
134
135 return USBGenericRequest_OUT;
136 }
137 }
138
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 16
USBGenericRequest_GetRequest 8
USBGenericRequest_GetValue 8
USBGenericRequest_GetIndex 8
USBGenericRequest_GetLength 8
USBGenericRequest_GetEndpointNumber
20
USBGenericRequest_GetRecipient 12
USBGenericRequest_GetDirection 20
100 bytes in section .text
100 bytes of CODE memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -