Recently in the optimization of the burning writing tool, there are some USB content needs to summarize the initialization and enumeration process that contains the device.
During enumeration, the device waits for the state of the PC side, and then enumerates the devices again when the Reset command is made. But how does this reset terminal come about?
Halt Conditions
A control endpoint may recover from a halt condition upon receiving a SETUP packet. If The endpoint does not recover from a SETUP packet, it may need to be recovered via a different pipe. If an endpoint with the endpoint number 0 does not recover with a SETUP packet, the host should issue a device reset.
In the USB protocol, there is a description of the above, the general meaning is: control power outage in the receipt of the setup package when the HC Hang State recovery. Assuming that the endpoint is not recovering from the setup package, it may need to be restored through a different pipeline. Assuming that endpoint 0 does not recover from the setup package, the host side will cause the device to restart the event.
This explains that the program will continue to receive interrupts during the process of working with the DFU file, and after reset waits for the device to be enumerated again. Detailed operations might be described in a descriptive narrative.
USB Related File Download:
http://www.usb.org/developers/docs/usb20_docs/
Where does the reset of USB devices come from when connecting to a PC?