diff options
author | Dean Camera <[email protected]> | 2011-04-23 04:39:21 +0000 |
---|---|---|
committer | Dean Camera <[email protected]> | 2011-04-23 04:39:21 +0000 |
commit | 8c3d63b5cff33ad73a890e6e294da135200c53a0 (patch) | |
tree | 03b7a2844fa62743305314483dd8bfbba987540d | |
parent | 0407b92584ead02122f5273fde380dd8a272e83c (diff) | |
download | qmk_firmware-8c3d63b5cff33ad73a890e6e294da135200c53a0.tar.gz qmk_firmware-8c3d63b5cff33ad73a890e6e294da135200c53a0.zip |
Fix HID class bootloader not working on the larger USB AVRs due to the altered page addressing scheme.
-rw-r--r-- | Bootloaders/HID/BootloaderHID.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Bootloaders/HID/BootloaderHID.c b/Bootloaders/HID/BootloaderHID.c index f048043069..484942f978 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;
}
|