From ff61dfa50589bc65bf5642feb80a0f23a237d76b Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 16 May 2010 05:43:03 +0000 Subject: [PATCH] Fixed AVRISP project not sending a full erase-and-write EEPROM command to XMEGA targets when writing to the EEPROM instead of the split write-only command (thanks to Tim Margush). --- LUFA/ManPages/ChangeLog.txt | 10 +++++----- LUFA/ManPages/MigrationInformation.txt | 4 ++-- LUFA/Scheduler/Scheduler.h | 20 +++++++++---------- .../AVRISP-MKII/Lib/XPROG/XPROGProtocol.c | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 54320c829b..5ac0bb0f11 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -8,14 +8,16 @@ * * \section Sec_ChangeLogXXXXXX Version XXXXXX * New: - * N/A + * - N/A * * Changed: - * N/A + * - N/A * * Fixed: * - Fixed AVRISP project sending a LOAD EXTENDED ADDRESS command to 128KB AVRs after programming or reading from - * the last page of FLASH + * the last page of FLASH (thanks to Gerard Sexton) + * - Fixed AVRISP project not sending a full erase-and-write EEPROM command to XMEGA targets when writing to the EEPROM + * instead of the split write-only command (thanks to Tim Margush) * * \section Sec_ChangeLog100513 Version 100513 * New: @@ -65,8 +67,6 @@ * - Fixed AVRISP-MKII clone project not correctly issuing LOAD EXTENDED ADDRESS commands when the extended address * boundary is crossed during programming or readback (thanks to Gerard Sexton) * - Fixed warnings when building the AVRISP-MKII clone project with the ENABLE_XPROG_PROTOCOL compile time option disabled - * - Remove incorrect check for the current device state in the Set Configuration request handler of DevChapter9, which broke - * Set Configuration requests to the device under most circumstances. * - Fixed software PDI/TPI programming mode in the AVRISP project not correctly toggling just the clock pin * - Fixed TWI_StartTransmission() corrupting the contents of the GPIOR0 register * - Fixed TWI driver not aborting when faced with no response after attempting to address a device on the bus diff --git a/LUFA/ManPages/MigrationInformation.txt b/LUFA/ManPages/MigrationInformation.txt index 844cdad401..dd00abd7fa 100644 --- a/LUFA/ManPages/MigrationInformation.txt +++ b/LUFA/ManPages/MigrationInformation.txt @@ -10,8 +10,8 @@ * to the next version released. It does not indicate all new additions to the library in each version change, only * areas relevant to making older projects compatible with the API changes of each new release. * - * \section Sec_Migration100513 Migrating from 100219 to 100513 - * N/A + * \section Sec_Migration100513 Migrating from 100513 to XXXXXX + * N/A * * \section Sec_Migration100513 Migrating from 100219 to 100513 * diff --git a/LUFA/Scheduler/Scheduler.h b/LUFA/Scheduler/Scheduler.h index 672af2f982..71be82beee 100644 --- a/LUFA/Scheduler/Scheduler.h +++ b/LUFA/Scheduler/Scheduler.h @@ -111,7 +111,7 @@ * } * \endcode */ - #define TASK(name) void name (void) + #define TASK(name) void name (void) /** Defines a task list array, containing one or more task entries of the type TaskEntry_t. Each task list * should be encased in curly braces and ended with a comma. @@ -125,18 +125,18 @@ * } * \endcode */ - #define TASK_LIST TaskEntry_t Scheduler_TaskList[] = + #define TASK_LIST TaskEntry_t Scheduler_TaskList[] = /** Constant, giving the maximum delay in scheduler ticks which can be stored in a variable of type * SchedulerDelayCounter_t. */ - #define TASK_MAX_DELAY (MAX_DELAYCTR_COUNT - 1) + #define TASK_MAX_DELAY (MAX_DELAYCTR_COUNT - 1) /** Task status mode constant, for passing to Scheduler_SetTaskMode() or Scheduler_SetGroupTaskMode(). */ - #define TASK_RUN true + #define TASK_RUN true /** Task status mode constant, for passing to Scheduler_SetTaskMode() or Scheduler_SetGroupTaskMode(). */ - #define TASK_STOP false + #define TASK_STOP false /* Pseudo-Function Macros: */ #if defined(__DOXYGEN__) @@ -151,9 +151,9 @@ */ void Scheduler_Init(void); #else - #define Scheduler_Start() Scheduler_GoSchedule(TOTAL_TASKS); + #define Scheduler_Start() Scheduler_GoSchedule(TOTAL_TASKS); - #define Scheduler_Init() Scheduler_InitScheduler(TOTAL_TASKS); + #define Scheduler_Init() Scheduler_InitScheduler(TOTAL_TASKS); #endif /* Type Defines: */ @@ -181,20 +181,20 @@ * TaskEntry_t and can be manipulated as desired, although it is preferential that the proper Scheduler * functions should be used instead of direct manipulation. */ - extern TaskEntry_t Scheduler_TaskList[]; + exter TaskEntry_t Scheduler_TaskList[]; /** Contains the total number of tasks in the task list, irrespective of if the task's status is set to * TASK_RUN or TASK_STOP. * * \note This value should be treated as read-only, and never altered in user-code. */ - extern volatile uint8_t Scheduler_TotalTasks; + extern volatile uint8_t Scheduler_TotalTasks; /** Contains the current scheduler tick count, for use with the delay functions. If the delay functions * are used in the user code, this should be incremented each tick period so that the delays can be * calculated. */ - extern volatile SchedulerDelayCounter_t Scheduler_TickCounter; + extern volatile SchedulerDelayCounter_t Scheduler_TickCounter; /* Inline Functions: */ /** Resets the delay counter value to the current tick count. This should be called to reset the period diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c index 7a4b1a5470..ab4d4262a0 100644 --- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c +++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c @@ -319,7 +319,7 @@ static void XPROGProtocol_WriteMemory(void) WriteCommand = XMEGA_NVM_CMD_WRITEBOOTSECPAGE; break; case XPRG_MEM_TYPE_EEPROM: - WriteCommand = XMEGA_NVM_CMD_WRITEEEPROMPAGE; + WriteCommand = XMEGA_NVM_CMD_ERASEWRITEEEPROMPAGE; WriteBuffCommand = XMEGA_NVM_CMD_LOADEEPROMPAGEBUFF; EraseBuffCommand = XMEGA_NVM_CMD_ERASEEEPROMPAGEBUFF; break;