From cf41d16bc709c31d7ee8af0432256c8c8a3b4469 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 27 Oct 2013 18:15:03 +0100 Subject: Only issue the REPEAT instruction in the clone programmer if needed to reduce protocol overhead. --- Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.c b/Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.c index 06a4f7222..43c540e17 100644 --- a/Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.c +++ b/Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.c @@ -240,9 +240,12 @@ bool XMEGANVM_ReadMemory(const uint32_t ReadAddress, XPROGTarget_SendByte(PDI_CMD_ST | (PDI_POINTER_DIRECT << 2) | PDI_DATSIZE_4BYTES); XMEGANVM_SendAddress(ReadAddress); - /* Send the REPEAT command with the specified number of bytes to read */ - XPROGTarget_SendByte(PDI_CMD_REPEAT | PDI_DATSIZE_1BYTE); - XPROGTarget_SendByte(ReadSize - 1); + if (ReadSize > 1) + { + /* Send the REPEAT command with the specified number of bytes to read */ + XPROGTarget_SendByte(PDI_CMD_REPEAT | PDI_DATSIZE_1BYTE); + XPROGTarget_SendByte(ReadSize - 1); + } /* Send a LD command with indirect access and post-increment to read out the bytes */ XPROGTarget_SendByte(PDI_CMD_LD | (PDI_POINTER_INDIRECT_PI << 2) | PDI_DATSIZE_1BYTE); -- cgit v1.2.3