aboutsummaryrefslogtreecommitdiff
path: root/Bootloaders/HID/BootloaderHID.c
diff options
context:
space:
mode:
authorDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2011-04-23 04:39:21 +0000
committerDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2011-04-23 04:39:21 +0000
commita830873d382633371cc68d532d9d7adcd5536c3d (patch)
tree03b7a2844fa62743305314483dd8bfbba987540d /Bootloaders/HID/BootloaderHID.c
parentc0833c3f91890fbb5b5cb10d3314aa6fa1ae4c56 (diff)
Fix HID class bootloader not working on the larger USB AVRs due to the altered page addressing scheme.
git-svn-id: http://lufa-lib.googlecode.com/svn/trunk@1745 d5102386-fcda-11dd-9fdb-3debd5008f28
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 f0480430..484942f9 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;
}