提交 92f5b437 编写于 作者: lymzzyh's avatar lymzzyh

[USB Device]fix an error on msc

上级 ac278da0
...@@ -954,7 +954,6 @@ static rt_err_t _function_enable(ufunction_t func) ...@@ -954,7 +954,6 @@ static rt_err_t _function_enable(ufunction_t func)
{ {
struct mstorage *data; struct mstorage *data;
RT_ASSERT(func != RT_NULL); RT_ASSERT(func != RT_NULL);
RT_DEBUG_LOG(RT_DEBUG_USB, ("Mass storage function enabled\n")); RT_DEBUG_LOG(RT_DEBUG_USB, ("Mass storage function enabled\n"));
data = (struct mstorage*)func->user_data; data = (struct mstorage*)func->user_data;
...@@ -1027,7 +1026,12 @@ static rt_err_t _function_disable(ufunction_t func) ...@@ -1027,7 +1026,12 @@ static rt_err_t _function_disable(ufunction_t func)
rt_free(data->ep_out->buffer); rt_free(data->ep_out->buffer);
data->ep_out->buffer = RT_NULL; data->ep_out->buffer = RT_NULL;
} }
if(data->disk != RT_NULL)
{
rt_device_close(data->disk);
data->disk = RT_NULL;
}
data->status = STAT_CBW; data->status = STAT_CBW;
return RT_EOK; return RT_EOK;
......
...@@ -2144,8 +2144,9 @@ static void rt_usbd_thread_entry(void* parameter) ...@@ -2144,8 +2144,9 @@ static void rt_usbd_thread_entry(void* parameter)
break; break;
case USB_MSG_RESET: case USB_MSG_RESET:
RT_DEBUG_LOG(RT_DEBUG_USB, ("reset %d\n", device->state)); RT_DEBUG_LOG(RT_DEBUG_USB, ("reset %d\n", device->state));
if (device->state == USB_STATE_ADDRESS) if (device->state == USB_STATE_ADDRESS || device->state == USB_STATE_CONFIGURED)
_stop_notify(device); _stop_notify(device);
device->state = USB_STATE_NOTATTACHED;
break; break;
case USB_MSG_PLUG_IN: case USB_MSG_PLUG_IN:
device->state = USB_STATE_ATTACHED; device->state = USB_STATE_ATTACHED;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册