From 8a55d80e7e1214b8625b413fa0123a8b6ce9c825 Mon Sep 17 00:00:00 2001 From: Dean Camera <dean@fourwalledcubicle.com> Date: Mon, 14 Dec 2009 04:39:16 +0000 Subject: Fix NVM commands so that memory reads and CRC generations now work correctly using unoptimized PDI commands. --- Projects/AVRISP/Lib/PDIProtocol.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'Projects/AVRISP/Lib/PDIProtocol.c') diff --git a/Projects/AVRISP/Lib/PDIProtocol.c b/Projects/AVRISP/Lib/PDIProtocol.c index a7b11557c..e3255a0c6 100644 --- a/Projects/AVRISP/Lib/PDIProtocol.c +++ b/Projects/AVRISP/Lib/PDIProtocol.c @@ -216,20 +216,17 @@ static void PDIProtocol_ReadMemory(void) Endpoint_ClearOUT(); Endpoint_SetEndpointDirection(ENDPOINT_DIR_IN); - - if (ReadMemory_XPROG_Params.MemoryType == XPRG_MEM_TYPE_USERSIG) - { - PDITarget_SendByte(PDI_CMD_STS | (PDI_DATSIZE_1BYTE << 2)); - NVMTarget_SendNVMRegAddress(NVM_REG_CMD); - PDITarget_SendByte(NVM_CMD_READUSERSIG); - // TODO - } - + uint8_t ReadBuffer[ReadMemory_XPROG_Params.Length]; + NVMTarget_ReadMemory(ReadMemory_XPROG_Params.Address, ReadBuffer, ReadMemory_XPROG_Params.Length); + Endpoint_Write_Byte(CMD_XPROG); Endpoint_Write_Byte(XPRG_CMD_READ_MEM); Endpoint_Write_Byte(ReturnStatus); + if (ReturnStatus == XPRG_ERR_OK) + Endpoint_Write_Stream_LE(ReadBuffer, ReadMemory_XPROG_Params.Length); + Endpoint_ClearIN(); } @@ -250,13 +247,16 @@ static void PDIProtocol_ReadCRC(void) Endpoint_SetEndpointDirection(ENDPOINT_DIR_IN); uint32_t MemoryCRC; + uint8_t CRCCommand; if (ReadCRC_XPROG_Params.CRCType == XPRG_CRC_APP) - MemoryCRC = NVMTarget_GetMemoryCRC(NVM_CMD_APPCRC); + CRCCommand = NVM_CMD_APPCRC; else if (ReadCRC_XPROG_Params.CRCType == XPRG_CRC_BOOT) - MemoryCRC = NVMTarget_GetMemoryCRC(NVM_CMD_BOOTCRC); + CRCCommand = NVM_CMD_BOOTCRC; else - MemoryCRC = NVMTarget_GetMemoryCRC(NVM_CMD_FLASHCRC); + CRCCommand = NVM_CMD_FLASHCRC; + + MemoryCRC = NVMTarget_GetMemoryCRC(CRCCommand); Endpoint_Write_Byte(CMD_XPROG); Endpoint_Write_Byte(XPRG_CMD_CRC); -- cgit v1.2.3