X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/513db46548c4757d912d158d0e261520c9ee608c..e9029d49d5455ec146d2e87436d43d747d6c657a:/Bootloaders/DFU/BootloaderDFU.c diff --git a/Bootloaders/DFU/BootloaderDFU.c b/Bootloaders/DFU/BootloaderDFU.c index 9f6166075..078d59deb 100644 --- a/Bootloaders/DFU/BootloaderDFU.c +++ b/Bootloaders/DFU/BootloaderDFU.c @@ -87,7 +87,7 @@ static uint8_t Flash64KBPage = 0; */ static uint16_t StartAddr = 0x0000; -/** Memory end address, indicating the end address to read to/write from in the memory being addressed (either FLASH +/** Memory end address, indicating the end address to read from/write to in the memory being addressed (either FLASH * of EEPROM depending on the issued command from the host). */ static uint16_t EndAddr = 0x0000; @@ -99,6 +99,10 @@ static uint16_t EndAddr = 0x0000; */ int main(void) { + /* Force a reference to the API jump table to prevent the linker from discarding it */ + uint8_t* volatile Dummy = BootloaderAPI_JumpTable; + (void)Dummy; + /* Configure hardware required by the bootloader */ SetupHardware(); @@ -181,10 +185,7 @@ ISR(TIMER1_OVF_vect, ISR_BLOCK) * internally. */ void EVENT_USB_Device_ControlRequest(void) -{ - /* Get the size of the command and data from the wLength value */ - SentCommand.DataSize = USB_ControlRequest.wLength; - +{ /* Ignore any requests that aren't directed to the DFU interface */ if ((USB_ControlRequest.bmRequestType & (CONTROL_REQTYPE_TYPE | CONTROL_REQTYPE_RECIPIENT)) != (REQTYPE_CLASS | REQREC_INTERFACE)) @@ -192,6 +193,12 @@ void EVENT_USB_Device_ControlRequest(void) return; } + /* Activity - toggle indicator LEDs */ + LEDs_ToggleLEDs(LEDS_LED1 | LEDS_LED2); + + /* Get the size of the command and data from the wLength value */ + SentCommand.DataSize = USB_ControlRequest.wLength; + switch (USB_ControlRequest.bRequest) { case DFU_REQ_DNLOAD: @@ -739,4 +746,3 @@ static void ProcessReadCommand(void) else if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x01)) // Read signature byte ResponseByte = SignatureInfo[DataIndexToRead - 0x30]; } -