void XPROGProtocol_Command(void)\r
{\r
uint8_t XPROGCommand = Endpoint_Read_Byte();\r
-\r
+ \r
switch (XPROGCommand)\r
{\r
case XPRG_CMD_ENTER_PROGMODE:\r
uint8_t XPROGParam = Endpoint_Read_Byte();\r
\r
/* Determine which parameter is being set, store the new parameter value */\r
- if (XPROGParam == XPRG_PARAM_NVMBASE)\r
- XPROG_Param_NVMBase = Endpoint_Read_DWord_BE();\r
- else if (XPROGParam == XPRG_PARAM_EEPPAGESIZE)\r
- XPROG_Param_EEPageSize = Endpoint_Read_Word_BE();\r
- else\r
- ReturnStatus = XPRG_ERR_FAILED;\r
- \r
+ switch (XPROGParam)\r
+ {\r
+ case XPRG_PARAM_NVMBASE:\r
+ XPROG_Param_NVMBase = Endpoint_Read_DWord_BE();\r
+ break;\r
+ case XPRG_PARAM_EEPPAGESIZE:\r
+ XPROG_Param_EEPageSize = Endpoint_Read_Word_BE();\r
+ break;\r
+ case XPRG_PARAM_UNDOC_1:\r
+ case XPRG_PARAM_UNDOC_2:\r
+ break; // Undocumented TPI parameter, just accept and discard\r
+ default:\r
+ ReturnStatus = XPRG_ERR_FAILED;\r
+ break;\r
+ }\r
+\r
Endpoint_ClearOUT();\r
Endpoint_SetEndpointDirection(ENDPOINT_DIR_IN);\r
\r
\r
#define XPRG_PARAM_NVMBASE 0x01\r
#define XPRG_PARAM_EEPPAGESIZE 0x02\r
+ #define XPRG_PARAM_UNDOC_1 0x03\r
+ #define XPRG_PARAM_UNDOC_2 0x04\r
\r
#define XPRG_PROTOCOL_PDI 0x00\r
#define XPRG_PROTOCOL_JTAG 0x01\r