diff options
Diffstat (limited to 'src/device/usbd.c')
| -rw-r--r-- | src/device/usbd.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/device/usbd.c b/src/device/usbd.c index 0eac22c15..e8dfd83dd 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -334,7 +334,8 @@ static tusb_error_t proc_control_request_st(uint8_t rhport, tusb_control_request if ( len )
{
STASK_ASSERT( len <= CFG_TUD_CTRL_BUFSIZE );
- usbd_control_xfer_st(rhport, p_request->bmRequestType_bit.direction, buffer, len );
+ memcpy(_usbd_ctrl_buf, buffer, len);
+ usbd_control_xfer_st(rhport, p_request->bmRequestType_bit.direction, _usbd_ctrl_buf, len);
}else
{
dcd_control_stall(rhport); // stall unsupported descriptor
@@ -342,7 +343,8 @@ static tusb_error_t proc_control_request_st(uint8_t rhport, tusb_control_request }
else if (TUSB_REQ_GET_CONFIGURATION == p_request->bRequest )
{
- usbd_control_xfer_st(rhport, p_request->bmRequestType_bit.direction, &_usbd_dev.config_num, 1);
+ memcpy(_usbd_ctrl_buf, &_usbd_dev.config_num, 1);
+ usbd_control_xfer_st(rhport, p_request->bmRequestType_bit.direction, _usbd_ctrl_buf, 1);
}
else if ( TUSB_REQ_SET_ADDRESS == p_request->bRequest )
{
|
