Add explicit guards to all device mode tasks to ensure the device is connected and configured before running the task, to prevent any user tasks from locking up the main USB task if the device has not been properly configured.

This commit is contained in:
Dean Camera 2009-07-21 02:48:41 +00:00
parent bf50959b80
commit 67f390fe74
19 changed files with 245 additions and 216 deletions

View file

@ -377,13 +377,13 @@ void ReceiveNextReport(void)
/** Function to manage HID report generation and transmission to the host, when in report mode. */
void HID_Task(void)
{
/* Check if the USB system is connected to a host */
if (USB_IsConnected)
{
/* Send the next keypress report to the host */
SendNextReport();
/* Device must be connected and configured for the task to run */
if (!(USB_IsConnected) || !(USB_ConfigurationNumber))
return;
/* Send the next keypress report to the host */
SendNextReport();
/* Process the LED report sent from the host */
ReceiveNextReport();
}
/* Process the LED report sent from the host */
ReceiveNextReport();
}