aboutsummaryrefslogtreecommitdiffstats
path: root/Bootloaders/HID/BootloaderHID.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2011-04-23 04:39:21 +0000
committerDean Camera <dean@fourwalledcubicle.com>2011-04-23 04:39:21 +0000
commit8c3d63b5cff33ad73a890e6e294da135200c53a0 (patch)
tree03b7a2844fa62743305314483dd8bfbba987540d /Bootloaders/HID/BootloaderHID.c
parent0407b92584ead02122f5273fde380dd8a272e83c (diff)
downloadlufa-8c3d63b5cff33ad73a890e6e294da135200c53a0.tar.gz
lufa-8c3d63b5cff33ad73a890e6e294da135200c53a0.tar.bz2
lufa-8c3d63b5cff33ad73a890e6e294da135200c53a0.zip
Fix HID class bootloader not working on the larger USB AVRs due to the altered page addressing scheme.
Diffstat (limited to 'Bootloaders/HID/BootloaderHID.c')
-rw-r--r--Bootloaders/HID/BootloaderHID.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/Bootloaders/HID/BootloaderHID.c b/Bootloaders/HID/BootloaderHID.c
index f04804306..484942f97 100644
--- a/Bootloaders/HID/BootloaderHID.c
+++ b/Bootloaders/HID/BootloaderHID.c
@@ -113,10 +113,18 @@ void EVENT_USB_Device_ControlRequest(void)
while (!(Endpoint_IsOUTReceived()));
/* Read in the write destination address */
+ #if (FLASHEND > 0xFFFF)
+ uint32_t PageAddress = ((uint32_t)Endpoint_Read_16_LE() << 8);
+ #else
uint16_t PageAddress = Endpoint_Read_16_LE();
+ #endif
/* Check if the command is a program page command, or a start application command */
- if (PageAddress == COMMAND_STARTAPPLICATION)
+ #if (FLASHEND > 0xFFFF)
+ if ((uint16_t)(PageAddress >> 8) == COMMAND_STARTAPPLICATION)
+ #else
+ if (PageAddress == COMMAND_STARTAPPLICATION)
+ #endif
{
RunBootloader = false;
}