X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/9740d3a55f1e5dc297aeddbb3c822831a426c658..fef991e28b56ce3e8de86833f00b6b7e77f1e84c:/Bootloaders/CDC/BootloaderCDC.c diff --git a/Bootloaders/CDC/BootloaderCDC.c b/Bootloaders/CDC/BootloaderCDC.c index f47fb1158..c7eeb929a 100644 --- a/Bootloaders/CDC/BootloaderCDC.c +++ b/Bootloaders/CDC/BootloaderCDC.c @@ -1,13 +1,13 @@ /* LUFA Library - Copyright (C) Dean Camera, 2012. + Copyright (C) Dean Camera, 2014. dean [at] fourwalledcubicle [dot] com www.lufa-lib.org */ /* - Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted @@ -91,6 +91,10 @@ void Application_Jump_Check(void) if ((MCUSR & (1 << WDRF)) && (MagicBootKey == MAGIC_BOOT_KEY)) JumpToApplication |= true; + /* Don't run the user application if the reset vector is blank (no app loaded) */ + if (pgm_read_word_near(0) == 0xFFFF) + JumpToApplication = false; + /* If a request has been made to jump to the user application, honor it */ if (JumpToApplication) { @@ -223,14 +227,22 @@ void EVENT_USB_Device_ControlRequest(void) } break; + case CDC_REQ_SetControlLineState: + if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) + { + Endpoint_ClearSETUP(); + Endpoint_ClearStatusStage(); + } + + break; } } #if !defined(NO_BLOCK_SUPPORT) /** Reads or writes a block of EEPROM or FLASH memory to or from the appropriate CDC data endpoint, depending - * on the AVR910 protocol command issued. + * on the AVR109 protocol command issued. * - * \param[in] Command Single character AVR910 protocol command indicating what memory operation to perform + * \param[in] Command Single character AVR109 protocol command indicating what memory operation to perform */ static void ReadWriteMemoryBlock(const uint8_t Command) { @@ -394,7 +406,7 @@ static void WriteNextResponseByte(const uint8_t Response) Endpoint_Write_8(Response); } -/** Task to read in AVR910 commands from the CDC data OUT endpoint, process them, perform the required actions +/** Task to read in AVR109 commands from the CDC data OUT endpoint, process them, perform the required actions * and send the appropriate response back to the host. */ static void CDC_Task(void)