From 3222f21b849ca283cc6c1f07c347285b8cbce075 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Mon, 28 Dec 2009 02:58:23 +0000 Subject: Add dummy undocumented TPI XPROG parameters to the AVRISP project so that TPI programming mode can be entered. --- Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c | 25 +++++++++++++++++-------- Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h | 2 ++ 2 files changed, 19 insertions(+), 8 deletions(-) (limited to 'Projects/AVRISP-MKII/Lib') diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c index b8c435efa..f3f888e1c 100644 --- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c +++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c @@ -74,7 +74,7 @@ void XPROGProtocol_SetMode(void) void XPROGProtocol_Command(void) { uint8_t XPROGCommand = Endpoint_Read_Byte(); - + switch (XPROGCommand) { case XPRG_CMD_ENTER_PROGMODE: @@ -420,13 +420,22 @@ static void XPROGProtocol_SetParam(void) uint8_t XPROGParam = Endpoint_Read_Byte(); /* Determine which parameter is being set, store the new parameter value */ - if (XPROGParam == XPRG_PARAM_NVMBASE) - XPROG_Param_NVMBase = Endpoint_Read_DWord_BE(); - else if (XPROGParam == XPRG_PARAM_EEPPAGESIZE) - XPROG_Param_EEPageSize = Endpoint_Read_Word_BE(); - else - ReturnStatus = XPRG_ERR_FAILED; - + switch (XPROGParam) + { + case XPRG_PARAM_NVMBASE: + XPROG_Param_NVMBase = Endpoint_Read_DWord_BE(); + break; + case XPRG_PARAM_EEPPAGESIZE: + XPROG_Param_EEPageSize = Endpoint_Read_Word_BE(); + break; + case XPRG_PARAM_UNDOC_1: + case XPRG_PARAM_UNDOC_2: + break; // Undocumented TPI parameter, just accept and discard + default: + ReturnStatus = XPRG_ERR_FAILED; + break; + } + Endpoint_ClearOUT(); Endpoint_SetEndpointDirection(ENDPOINT_DIR_IN); diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h index 19a2a4d01..e42e50cec 100644 --- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h +++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h @@ -97,6 +97,8 @@ #define XPRG_PARAM_NVMBASE 0x01 #define XPRG_PARAM_EEPPAGESIZE 0x02 + #define XPRG_PARAM_UNDOC_1 0x03 + #define XPRG_PARAM_UNDOC_2 0x04 #define XPRG_PROTOCOL_PDI 0x00 #define XPRG_PROTOCOL_JTAG 0x01 -- cgit v1.2.3