From 4600fd0cb649d5c625cfcca1f1f14167dc2e6a17 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Mon, 28 Dec 2009 07:50:20 +0000 Subject: Fix TPI NVM Write handler -- AVRStudio sends out writes in page sized chunks, not byte sized chunks. --- Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c') diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c index 39f82a0df..5275cca8d 100644 --- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c +++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c @@ -134,6 +134,7 @@ static void XPROGProtocol_EnterXPROGMode(void) } else { + #if 0 /* Enable TPI programming mode with the attached target */ XPROGTarget_EnableTargetTPI(); @@ -144,6 +145,8 @@ static void XPROGProtocol_EnterXPROGMode(void) /* Wait until the NVM bus becomes active */ NVMBusEnabled = TINYNVM_WaitWhileNVMBusBusy(); + #endif + NVMBusEnabled = true; } Endpoint_Write_Byte(CMD_XPROG); @@ -313,9 +316,14 @@ static void XPROGProtocol_WriteMemory(void) } else { + Serial_TxByte((uint8_t)WriteMemory_XPROG_Params.Length); + /* Send write command to the TPI device, indicate timeout if occurred */ - if (!(TINYNVM_WriteMemory(WriteMemory_XPROG_Params.Address, WriteMemory_XPROG_Params.ProgData[0]))) - ReturnStatus = XPRG_ERR_TIMEOUT; + if (!(TINYNVM_WriteMemory(WriteMemory_XPROG_Params.Address, WriteMemory_XPROG_Params.ProgData, + WriteMemory_XPROG_Params.Length))) + { + ReturnStatus = XPRG_ERR_TIMEOUT; + } } Endpoint_Write_Byte(CMD_XPROG); @@ -355,6 +363,8 @@ static void XPROGProtocol_ReadMemory(void) } else { + Serial_TxByte((uint8_t)ReadMemory_XPROG_Params.Length); + /* Read the TPI target's memory, indicate timeout if occurred */ if (!(TINYNVM_ReadMemory(ReadMemory_XPROG_Params.Address, ReadBuffer, ReadMemory_XPROG_Params.Length))) ReturnStatus = XPRG_ERR_TIMEOUT; -- cgit v1.2.3