Fix HID class bootloader not working on the larger USB AVRs due to the altered page addressing scheme.

This commit is contained in:
Dean Camera 2011-04-23 04:39:21 +00:00
parent 0407b92584
commit 8c3d63b5cf
1 changed files with 9 additions and 1 deletions

View File

@ -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;
}