diff options
| author | Dean Camera <dean@fourwalledcubicle.com> | 2009-12-28 07:50:20 +0000 | 
|---|---|---|
| committer | Dean Camera <dean@fourwalledcubicle.com> | 2009-12-28 07:50:20 +0000 | 
| commit | 4600fd0cb649d5c625cfcca1f1f14167dc2e6a17 (patch) | |
| tree | c01478d5ac26cd1bafe34f2ffad77707568c0ef2 /Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c | |
| parent | 7c8f4a716f01f6598234fd60cd53345da4903fde (diff) | |
| download | lufa-4600fd0cb649d5c625cfcca1f1f14167dc2e6a17.tar.gz lufa-4600fd0cb649d5c625cfcca1f1f14167dc2e6a17.tar.bz2 lufa-4600fd0cb649d5c625cfcca1f1f14167dc2e6a17.zip  | |
Fix TPI NVM Write handler -- AVRStudio sends out writes in page sized chunks, not byte sized chunks.
Diffstat (limited to 'Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c')
| -rw-r--r-- | Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c | 14 | 
1 files changed, 12 insertions, 2 deletions
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;
  | 
