projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix XMEGA architecture not correctly resetting the device address and endpoints in...
[pub/USBasp.git]
/
Bootloaders
/
DFU
/
BootloaderDFU.c
diff --git
a/Bootloaders/DFU/BootloaderDFU.c
b/Bootloaders/DFU/BootloaderDFU.c
index
6e0c95d
..
3ce2a62
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
1
.
+ Copyright (C) Dean Camera, 201
2
.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 201
1
Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 201
2
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
@@
-113,10
+113,10
@@
int main(void)
/* If the TCK pin is not jumpered to ground, start the user application instead */
RunBootloader = (!(PINF & (1 << 4)));
/* If the TCK pin is not jumpered to ground, start the user application instead */
RunBootloader = (!(PINF & (1 << 4)));
-
+
/* Re-enable JTAG debugging */
MCUCR &= ~(1 << JTD);
/* Re-enable JTAG debugging */
MCUCR &= ~(1 << JTD);
- MCUCR &= ~(1 << JTD);
+ MCUCR &= ~(1 << JTD);
#endif
/* Turn on first LED on the board to indicate that the bootloader has started */
#endif
/* Turn on first LED on the board to indicate that the bootloader has started */
@@
-137,7
+137,7
@@
int main(void)
}
/** Configures all hardware required for the bootloader. */
}
/** Configures all hardware required for the bootloader. */
-void SetupHardware(void)
+
static
void SetupHardware(void)
{
/* Disable watchdog if enabled by bootloader/fuses */
MCUSR &= ~(1 << WDRF);
{
/* Disable watchdog if enabled by bootloader/fuses */
MCUSR &= ~(1 << WDRF);
@@
-150,20
+150,21
@@
void SetupHardware(void)
MCUCR = (1 << IVCE);
MCUCR = (1 << IVSEL);
MCUCR = (1 << IVCE);
MCUCR = (1 << IVSEL);
- /* Initialize the USB
subsystem
*/
+ /* Initialize the USB
and other board hardware drivers
*/
USB_Init();
LEDs_Init();
USB_Init();
LEDs_Init();
-
+
/* Bootloader active LED toggle timer initialization */
TIMSK1 = (1 << TOIE1);
TCCR1B = ((1 << CS11) | (1 << CS10));
}
/** Resets all configured hardware required for the bootloader back to their original states. */
/* Bootloader active LED toggle timer initialization */
TIMSK1 = (1 << TOIE1);
TCCR1B = ((1 << CS11) | (1 << CS10));
}
/** Resets all configured hardware required for the bootloader back to their original states. */
-void ResetHardware(void)
+
static
void ResetHardware(void)
{
{
- /* Shut down the USB
subsystem
*/
+ /* Shut down the USB
and other board hardware drivers
*/
USB_Disable();
USB_Disable();
+ LEDs_Disable();
/* Relocate the interrupt vector table back to the application section */
MCUCR = (1 << IVCE);
/* Relocate the interrupt vector table back to the application section */
MCUCR = (1 << IVCE);
@@
-181,7
+182,7
@@
ISR(TIMER1_OVF_vect, ISR_BLOCK)
* internally.
*/
void EVENT_USB_Device_ControlRequest(void)
* internally.
*/
void EVENT_USB_Device_ControlRequest(void)
-{
+{
/* Ignore any requests that aren't directed to the DFU interface */
if ((USB_ControlRequest.bmRequestType & (CONTROL_REQTYPE_TYPE | CONTROL_REQTYPE_RECIPIENT)) !=
(REQTYPE_CLASS | REQREC_INTERFACE))
/* Ignore any requests that aren't directed to the DFU interface */
if ((USB_ControlRequest.bmRequestType & (CONTROL_REQTYPE_TYPE | CONTROL_REQTYPE_RECIPIENT)) !=
(REQTYPE_CLASS | REQREC_INTERFACE))
@@
-742,3
+743,4
@@
static void ProcessReadCommand(void)
else if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x01)) // Read signature byte
ResponseByte = SignatureInfo[DataIndexToRead - 0x30];
}
else if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x01)) // Read signature byte
ResponseByte = SignatureInfo[DataIndexToRead - 0x30];
}
+