projects
/
pub
/
lufa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
98947e3
)
Fixed software application start command broken in the DFU class bootloader when...
author
Dean Camera
<dean@fourwalledcubicle.com>
Thu, 5 Aug 2010 09:31:51 +0000
(09:31 +0000)
committer
Dean Camera
<dean@fourwalledcubicle.com>
Thu, 5 Aug 2010 09:31:51 +0000
(09:31 +0000)
Bootloaders/CDC/makefile
patch
|
blob
|
blame
|
history
Bootloaders/DFU/BootloaderDFU.c
patch
|
blob
|
blame
|
history
Bootloaders/DFU/makefile
patch
|
blob
|
blame
|
history
LUFA/ManPages/ChangeLog.txt
patch
|
blob
|
blame
|
history
diff --git
a/Bootloaders/CDC/makefile
b/Bootloaders/CDC/makefile
index
2df1828
..
346912c
100644
(file)
--- a/
Bootloaders/CDC/makefile
+++ b/
Bootloaders/CDC/makefile
@@
-121,6
+121,7
@@
LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENAB
LUFA_OPTS += -D NO_INTERNAL_SERIAL
LUFA_OPTS += -D NO_DEVICE_SELF_POWER
LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
LUFA_OPTS += -D NO_INTERNAL_SERIAL
LUFA_OPTS += -D NO_DEVICE_SELF_POWER
LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
+LUFA_OPTS += -D NO_STREAM_CALLBACKS
# Create the LUFA source path variables by including the LUFA root makefile
# Create the LUFA source path variables by including the LUFA root makefile
diff --git
a/Bootloaders/DFU/BootloaderDFU.c
b/Bootloaders/DFU/BootloaderDFU.c
index
752c320
..
7136b97
100644
(file)
--- a/
Bootloaders/DFU/BootloaderDFU.c
+++ b/
Bootloaders/DFU/BootloaderDFU.c
@@
-634,26
+634,30
@@
static void ProcessWriteCommand(void)
/* Indicate that the bootloader is terminating */
WaitForExit = true;
/* Indicate that the bootloader is terminating */
WaitForExit = true;
- /* Check if empty request data array - an empty request after a filled request retains the
- previous valid request data, but initializes the reset */
- if (!(SentCommand.DataSize))
+ /* Check if data supplied for the Start Program command - no data executes the program */
+ if (SentCommand.DataSize)
{
{
- if (SentCommand.Data[1] == 0x00) // Start via watchdog
- {
- /* Start the watchdog to reset the AVR once the communications are finalized */
- wdt_enable(WDTO_250MS);
- }
- else // Start via jump
+ if (SentCommand.Data[1] == 0x01) // Start via jump
{
{
- /* Load in the jump address into the application start address pointer */
union
{
uint8_t Bytes[2];
AppPtr_t FuncPtr;
} Address = {.Bytes = {SentCommand.Data[4], SentCommand.Data[3]}};
union
{
uint8_t Bytes[2];
AppPtr_t FuncPtr;
} Address = {.Bytes = {SentCommand.Data[4], SentCommand.Data[3]}};
+ /* Load in the jump address into the application start address pointer */
AppStartPtr = Address.FuncPtr;
AppStartPtr = Address.FuncPtr;
-
+ }
+ }
+ else
+ {
+ if (SentCommand.Data[1] == 0x00) // Start via watchdog
+ {
+ /* Start the watchdog to reset the AVR once the communications are finalized */
+ wdt_enable(WDTO_250MS);
+ }
+ else // Start via jump
+ {
/* Set the flag to terminate the bootloader at next opportunity */
RunBootloader = false;
}
/* Set the flag to terminate the bootloader at next opportunity */
RunBootloader = false;
}
diff --git
a/Bootloaders/DFU/makefile
b/Bootloaders/DFU/makefile
index
2cfff0f
..
deb5312
100644
(file)
--- a/
Bootloaders/DFU/makefile
+++ b/
Bootloaders/DFU/makefile
@@
-122,6
+122,7
@@
LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENAB
LUFA_OPTS += -D NO_INTERNAL_SERIAL
LUFA_OPTS += -D NO_DEVICE_SELF_POWER
LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
LUFA_OPTS += -D NO_INTERNAL_SERIAL
LUFA_OPTS += -D NO_DEVICE_SELF_POWER
LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
+LUFA_OPTS += -D NO_STREAM_CALLBACKS
# Create the LUFA source path variables by including the LUFA root makefile
# Create the LUFA source path variables by including the LUFA root makefile
diff --git
a/LUFA/ManPages/ChangeLog.txt
b/LUFA/ManPages/ChangeLog.txt
index
5a21f51
..
02d4200
100644
(file)
--- a/
LUFA/ManPages/ChangeLog.txt
+++ b/
LUFA/ManPages/ChangeLog.txt
@@
-67,6
+67,8
@@
* operation to occur (thanks to Bob Paddock)
* - Fixed Serial peripheral driver not turning off the USART before reconfiguring it, which would cause incorrect operation
* to occur (thanks to Bob Paddock)
* operation to occur (thanks to Bob Paddock)
* - Fixed Serial peripheral driver not turning off the USART before reconfiguring it, which would cause incorrect operation
* to occur (thanks to Bob Paddock)
+ * - Fixed software application start command broken in the DFU class bootloader when dfu-programmer is used due to application
+ * start address corruption
*
* \section Sec_ChangeLog100513 Version 100513
* <b>New:</b>
*
* \section Sec_ChangeLog100513 Version 100513
* <b>New:</b>