aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Device/LowLevel/DualCDC/DualCDC.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-07-21 02:48:41 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-07-21 02:48:41 +0000
commit67f390fe746ccc4d1dceac23f590eb1723cb7ff2 (patch)
treeeafc8a4dcb64a038afcb16fcae8d48033dc74249 /Demos/Device/LowLevel/DualCDC/DualCDC.c
parentbf50959b8016adbf6b295178b26b8173514dd060 (diff)
downloadlufa-67f390fe746ccc4d1dceac23f590eb1723cb7ff2.tar.gz
lufa-67f390fe746ccc4d1dceac23f590eb1723cb7ff2.tar.bz2
lufa-67f390fe746ccc4d1dceac23f590eb1723cb7ff2.zip
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.
Diffstat (limited to 'Demos/Device/LowLevel/DualCDC/DualCDC.c')
-rw-r--r--Demos/Device/LowLevel/DualCDC/DualCDC.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/Demos/Device/LowLevel/DualCDC/DualCDC.c b/Demos/Device/LowLevel/DualCDC/DualCDC.c
index 1031068ad..862945e63 100644
--- a/Demos/Device/LowLevel/DualCDC/DualCDC.c
+++ b/Demos/Device/LowLevel/DualCDC/DualCDC.c
@@ -229,6 +229,10 @@ void CDC1_Task(void)
uint8_t JoyStatus_LCL = Joystick_GetStatus();
static bool ActionSent = false;
+ /* Device must be connected and configured for the task to run */
+ if (!(USB_IsConnected) || !(USB_ConfigurationNumber))
+ return;
+
char* JoystickStrings[] =
{
"Joystick Up\r\n",
@@ -288,6 +292,10 @@ void CDC1_Task(void)
*/
void CDC2_Task(void)
{
+ /* Device must be connected and configured for the task to run */
+ if (!(USB_IsConnected) || !(USB_ConfigurationNumber))
+ return;
+
/* Select the Serial Rx Endpoint */
Endpoint_SelectEndpoint(CDC2_RX_EPNUM);