forked from mfulz_github/qmk_firmware
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).
This commit is contained in:
parent
80d85090ba
commit
ff61dfa505
|
@ -8,14 +8,16 @@
|
||||||
*
|
*
|
||||||
* \section Sec_ChangeLogXXXXXX Version XXXXXX
|
* \section Sec_ChangeLogXXXXXX Version XXXXXX
|
||||||
* <b>New:</b>
|
* <b>New:</b>
|
||||||
* N/A
|
* - N/A
|
||||||
*
|
*
|
||||||
* <b>Changed:</b>
|
* <b>Changed:</b>
|
||||||
* N/A
|
* - N/A
|
||||||
*
|
*
|
||||||
* <b>Fixed:</b>
|
* <b>Fixed:</b>
|
||||||
* - Fixed AVRISP project sending a LOAD EXTENDED ADDRESS command to 128KB AVRs after programming or reading from
|
* - 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
|
* \section Sec_ChangeLog100513 Version 100513
|
||||||
* <b>New:</b>
|
* <b>New:</b>
|
||||||
|
@ -65,8 +67,6 @@
|
||||||
* - Fixed AVRISP-MKII clone project not correctly issuing LOAD EXTENDED ADDRESS commands when the extended address
|
* - 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)
|
* 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
|
* - 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 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_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
|
* - Fixed TWI driver not aborting when faced with no response after attempting to address a device on the bus
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
* to the next version released. It does not indicate all new additions to the library in each version change, only
|
* 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.
|
* areas relevant to making older projects compatible with the API changes of each new release.
|
||||||
*
|
*
|
||||||
* \section Sec_Migration100513 Migrating from 100219 to 100513
|
* \section Sec_Migration100513 Migrating from 100513 to XXXXXX
|
||||||
* N/A
|
* N/A
|
||||||
*
|
*
|
||||||
* \section Sec_Migration100513 Migrating from 100219 to 100513
|
* \section Sec_Migration100513 Migrating from 100219 to 100513
|
||||||
*
|
*
|
||||||
|
|
|
@ -111,7 +111,7 @@
|
||||||
* }
|
* }
|
||||||
* \endcode
|
* \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
|
/** 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.
|
* should be encased in curly braces and ended with a comma.
|
||||||
|
@ -125,18 +125,18 @@
|
||||||
* }
|
* }
|
||||||
* \endcode
|
* \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
|
/** Constant, giving the maximum delay in scheduler ticks which can be stored in a variable of type
|
||||||
* SchedulerDelayCounter_t.
|
* 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(). */
|
/** 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(). */
|
/** Task status mode constant, for passing to Scheduler_SetTaskMode() or Scheduler_SetGroupTaskMode(). */
|
||||||
#define TASK_STOP false
|
#define TASK_STOP false
|
||||||
|
|
||||||
/* Pseudo-Function Macros: */
|
/* Pseudo-Function Macros: */
|
||||||
#if defined(__DOXYGEN__)
|
#if defined(__DOXYGEN__)
|
||||||
|
@ -151,9 +151,9 @@
|
||||||
*/
|
*/
|
||||||
void Scheduler_Init(void);
|
void Scheduler_Init(void);
|
||||||
#else
|
#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
|
#endif
|
||||||
|
|
||||||
/* Type Defines: */
|
/* Type Defines: */
|
||||||
|
@ -181,20 +181,20 @@
|
||||||
* TaskEntry_t and can be manipulated as desired, although it is preferential that the proper Scheduler
|
* TaskEntry_t and can be manipulated as desired, although it is preferential that the proper Scheduler
|
||||||
* functions should be used instead of direct manipulation.
|
* 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
|
/** 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.
|
* TASK_RUN or TASK_STOP.
|
||||||
*
|
*
|
||||||
* \note This value should be treated as read-only, and never altered in user-code.
|
* \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
|
/** 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
|
* are used in the user code, this should be incremented each tick period so that the delays can be
|
||||||
* calculated.
|
* calculated.
|
||||||
*/
|
*/
|
||||||
extern volatile SchedulerDelayCounter_t Scheduler_TickCounter;
|
extern volatile SchedulerDelayCounter_t Scheduler_TickCounter;
|
||||||
|
|
||||||
/* Inline Functions: */
|
/* Inline Functions: */
|
||||||
/** Resets the delay counter value to the current tick count. This should be called to reset the period
|
/** Resets the delay counter value to the current tick count. This should be called to reset the period
|
||||||
|
|
|
@ -319,7 +319,7 @@ static void XPROGProtocol_WriteMemory(void)
|
||||||
WriteCommand = XMEGA_NVM_CMD_WRITEBOOTSECPAGE;
|
WriteCommand = XMEGA_NVM_CMD_WRITEBOOTSECPAGE;
|
||||||
break;
|
break;
|
||||||
case XPRG_MEM_TYPE_EEPROM:
|
case XPRG_MEM_TYPE_EEPROM:
|
||||||
WriteCommand = XMEGA_NVM_CMD_WRITEEEPROMPAGE;
|
WriteCommand = XMEGA_NVM_CMD_ERASEWRITEEEPROMPAGE;
|
||||||
WriteBuffCommand = XMEGA_NVM_CMD_LOADEEPROMPAGEBUFF;
|
WriteBuffCommand = XMEGA_NVM_CMD_LOADEEPROMPAGEBUFF;
|
||||||
EraseBuffCommand = XMEGA_NVM_CMD_ERASEEEPROMPAGEBUFF;
|
EraseBuffCommand = XMEGA_NVM_CMD_ERASEEEPROMPAGEBUFF;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue