mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-16 12:51:47 +00:00
Fixed DFU bootloader programming not discarding the correct number of filler bytes from the host when non-aligned programming ranges are specified (thanks to Thomas Bleeker).
This commit is contained in:
parent
dd995683ea
commit
871d9bf1af
@ -205,8 +205,8 @@ void EVENT_USB_Device_UnhandledControlRequest(void)
|
|||||||
/* Throw away the filler bytes before the start of the firmware */
|
/* Throw away the filler bytes before the start of the firmware */
|
||||||
DiscardFillerBytes(DFU_FILLER_BYTES_SIZE);
|
DiscardFillerBytes(DFU_FILLER_BYTES_SIZE);
|
||||||
|
|
||||||
/* Throw away the page alignment filler bytes before the start of the firmware */
|
/* Throw away the packet alignment filler bytes before the start of the firmware */
|
||||||
DiscardFillerBytes(StartAddr % SPM_PAGESIZE);
|
DiscardFillerBytes(StartAddr % FIXED_CONTROL_ENDPOINT_SIZE);
|
||||||
|
|
||||||
/* Calculate the number of bytes remaining to be written */
|
/* Calculate the number of bytes remaining to be written */
|
||||||
uint16_t BytesRemaining = ((EndAddr - StartAddr) + 1);
|
uint16_t BytesRemaining = ((EndAddr - StartAddr) + 1);
|
||||||
|
@ -41,6 +41,8 @@
|
|||||||
* - Fixed invalid USB controller PLL prescaler values for the ATMEGAxxU2 controllers
|
* - Fixed invalid USB controller PLL prescaler values for the ATMEGAxxU2 controllers
|
||||||
* - Fixed lack of support for the ATMEGA32U2 in the DFU and CDC class bootloaders
|
* - Fixed lack of support for the ATMEGA32U2 in the DFU and CDC class bootloaders
|
||||||
* - Fixed Benito project not resetting the target AVR automatically when programming has completed
|
* - Fixed Benito project not resetting the target AVR automatically when programming has completed
|
||||||
|
* - Fixed DFU bootloader programming not discarding the correct number of filler bytes from the host when non-aligned programming
|
||||||
|
* ranges are specified (thanks to Thomas Bleeker)
|
||||||
*
|
*
|
||||||
* \section Sec_ChangeLog091223 Version 091223
|
* \section Sec_ChangeLog091223 Version 091223
|
||||||
*
|
*
|
||||||
|
@ -96,6 +96,7 @@ FATFS DiskFATState;
|
|||||||
FIL TempLogFile;
|
FIL TempLogFile;
|
||||||
|
|
||||||
|
|
||||||
|
/** ISR to handle the 500ms ticks for sampling and data logging */
|
||||||
ISR(TIMER1_COMPA_vect, ISR_BLOCK)
|
ISR(TIMER1_COMPA_vect, ISR_BLOCK)
|
||||||
{
|
{
|
||||||
uint8_t LEDMask = LEDs_GetLEDs();
|
uint8_t LEDMask = LEDs_GetLEDs();
|
||||||
@ -157,6 +158,7 @@ int main(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Opens the log file on the Dataflash's FAT formatted partition according to the current date */
|
||||||
void OpenLogFile(void)
|
void OpenLogFile(void)
|
||||||
{
|
{
|
||||||
char LogFileName[12];
|
char LogFileName[12];
|
||||||
@ -172,6 +174,7 @@ void OpenLogFile(void)
|
|||||||
f_lseek(&TempLogFile, TempLogFile.fsize);
|
f_lseek(&TempLogFile, TempLogFile.fsize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Closes the open data log file on the Dataflash's FAT formatted partition */
|
||||||
void CloseLogFile(void)
|
void CloseLogFile(void)
|
||||||
{
|
{
|
||||||
/* Sync any data waiting to be written, unmount the storage device */
|
/* Sync any data waiting to be written, unmount the storage device */
|
||||||
@ -301,6 +304,7 @@ void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDI
|
|||||||
DS1307_SetDate(ReportParams->Day, ReportParams->Month, ReportParams->Year);
|
DS1307_SetDate(ReportParams->Day, ReportParams->Month, ReportParams->Year);
|
||||||
DS1307_SetTime(ReportParams->Hour, ReportParams->Minute, ReportParams->Second);
|
DS1307_SetTime(ReportParams->Hour, ReportParams->Minute, ReportParams->Second);
|
||||||
|
|
||||||
|
/* If the logging interval has changed from its current value, write it to EEPROM */
|
||||||
if (LoggingInterval500MS_SRAM != ReportParams->LogInterval500MS)
|
if (LoggingInterval500MS_SRAM != ReportParams->LogInterval500MS)
|
||||||
{
|
{
|
||||||
LoggingInterval500MS_SRAM = ReportParams->LogInterval500MS;
|
LoggingInterval500MS_SRAM = ReportParams->LogInterval500MS;
|
||||||
|
Loading…
Reference in New Issue
Block a user