X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/7c8f4a716f01f6598234fd60cd53345da4903fde..7f9f97c792dee6875fbca9806422bdd7d6c5a657:/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c?ds=sidebyside diff --git a/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c b/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c index 4d879bd67..93c2c6ee2 100644 --- a/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c +++ b/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c @@ -1,13 +1,13 @@ /* LUFA Library - Copyright (C) Dean Camera, 2009. + Copyright (C) Dean Camera, 2010. dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ /* - Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted @@ -119,14 +119,13 @@ bool TINYNVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, uint16_ /** Writes byte addressed memory to the target's memory spaces. * - * \param[in] WriteCommand Command to send to the device to write each memory byte * \param[in] WriteAddress Start address to write to within the target's address space * \param[in] WriteBuffer Buffer to source data from - * + * \param[in] WriteLength Total number of bytes to write to the device * * \return Boolean true if the command sequence complete successfully */ -bool TINYNVM_WriteMemory(const uint32_t WriteAddress, const uint8_t Byte) +bool TINYNVM_WriteMemory(const uint32_t WriteAddress, const uint8_t* WriteBuffer, uint16_t WriteLength) { /* Wait until the NVM controller is no longer busy */ if (!(TINYNVM_WaitWhileNVMControllerBusy())) @@ -139,9 +138,12 @@ bool TINYNVM_WriteMemory(const uint32_t WriteAddress, const uint8_t Byte) /* Send the address of the location to write to */ TINYNVM_SendPointerAddress(WriteAddress); - /* Write the byte of data to the target */ - XPROGTarget_SendByte(TPI_CMD_SST | TPI_POINTER_INDIRECT); - XPROGTarget_SendByte(Byte); + while (WriteLength--) + { + /* Write the byte of data to the target */ + XPROGTarget_SendByte(TPI_CMD_SST | TPI_POINTER_INDIRECT_PI); + XPROGTarget_SendByte(*(WriteBuffer++)); + } return true; }