projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Simplify Atmel Studio integration scripts.
[pub/USBasp.git]
/
Bootloaders
/
DFU
/
BootloaderDFU.c
diff --git
a/Bootloaders/DFU/BootloaderDFU.c
b/Bootloaders/DFU/BootloaderDFU.c
index
887f94d
..
f19fa03
100644
(file)
--- a/
Bootloaders/DFU/BootloaderDFU.c
+++ b/
Bootloaders/DFU/BootloaderDFU.c
@@
-1,13
+1,13
@@
/*
LUFA Library
/*
LUFA Library
- Copyright (C) Dean Camera, 201
2
.
+ Copyright (C) Dean Camera, 201
3
.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 201
2
Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 201
3
Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@
-132,7
+132,7
@@
void Application_Jump_Check(void)
{
/* Turn off the watchdog */
MCUSR &= ~(1<<WDRF);
{
/* Turn off the watchdog */
MCUSR &= ~(1<<WDRF);
- wdt_disable();
+ wdt_disable();
/* Clear the boot key and jump to the user application */
MagicBootKey = 0;
/* Clear the boot key and jump to the user application */
MagicBootKey = 0;
@@
-197,7
+197,7
@@
static void ResetHardware(void)
/* Shut down the USB and other board hardware drivers */
USB_Disable();
LEDs_Disable();
/* Shut down the USB and other board hardware drivers */
USB_Disable();
LEDs_Disable();
-
+
/* Disable Bootloader active LED toggle timer */
TIMSK1 = 0;
TCCR1B = 0;
/* Disable Bootloader active LED toggle timer */
TIMSK1 = 0;
TCCR1B = 0;
@@
-489,6
+489,12
@@
void EVENT_USB_Device_ControlRequest(void)
case DFU_REQ_GETSTATUS:
Endpoint_ClearSETUP();
case DFU_REQ_GETSTATUS:
Endpoint_ClearSETUP();
+ while (!(Endpoint_IsINReady()))
+ {
+ if (USB_DeviceState == DEVICE_STATE_Unattached)
+ return;
+ }
+
/* Write 8-bit status value */
Endpoint_Write_8(DFU_Status);
/* Write 8-bit status value */
Endpoint_Write_8(DFU_Status);
@@
-517,6
+523,12
@@
void EVENT_USB_Device_ControlRequest(void)
case DFU_REQ_GETSTATE:
Endpoint_ClearSETUP();
case DFU_REQ_GETSTATE:
Endpoint_ClearSETUP();
+ while (!(Endpoint_IsINReady()))
+ {
+ if (USB_DeviceState == DEVICE_STATE_Unattached)
+ return;
+ }
+
/* Write the current device state to the endpoint */
Endpoint_Write_8(DFU_State);
/* Write the current device state to the endpoint */
Endpoint_Write_8(DFU_State);