aboutsummaryrefslogtreecommitdiffstats
path: root/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-12-28 07:50:20 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-12-28 07:50:20 +0000
commit4600fd0cb649d5c625cfcca1f1f14167dc2e6a17 (patch)
treec01478d5ac26cd1bafe34f2ffad77707568c0ef2 /Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c
parent7c8f4a716f01f6598234fd60cd53345da4903fde (diff)
downloadlufa-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.c14
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;