X-Git-Url: http://git.linex4red.de/pub/lufa.git/blobdiff_plain/65fcebf4784486f1cb8da08d7a400963461f61ad..8cd7e118e950d18ec0dd0d716005930ec45fd299:/Projects/AVRISP/Lib/XPROG/TINYNVM.c?ds=inline diff --git a/Projects/AVRISP/Lib/XPROG/TINYNVM.c b/Projects/AVRISP/Lib/XPROG/TINYNVM.c index 5eb59892e..3ddd2eda0 100644 --- a/Projects/AVRISP/Lib/XPROG/TINYNVM.c +++ b/Projects/AVRISP/Lib/XPROG/TINYNVM.c @@ -37,45 +37,26 @@ #include "TINYNVM.h" #if defined(ENABLE_XPROG_PROTOCOL) || defined(__DOXYGEN__) +#warning TPI Protocol support is currently incomplete and is not suitable for general use. -/** Busy-waits while the NVM controller is busy performing a NVM operation, such as a FLASH page read or CRC - * calculation. +/** Busy-waits while the NVM controller is busy performing a NVM operation, such as a FLASH page read. * * \return Boolean true if the NVM controller became ready within the timeout period, false otherwise */ -bool XMEGANVM_WaitWhileNVMBusBusy(void) +bool TINYNVM_WaitWhileNVMBusBusy(void) { - // TODO - - return false; -} - -/** Waits while the target's NVM controller is busy performing an operation, exiting if the - * timeout period expires. - * - * \return Boolean true if the NVM controller became ready within the timeout period, false otherwise - */ -bool XMEGANVM_WaitWhileNVMControllerBusy(void) -{ - // TODO + /* Poll the STATUS register to check to see if NVM access has been enabled */ + while (TimeoutMSRemaining) + { + /* Send the SLDCS command to read the TPI STATUS register to see the NVM bus is active */ + XPROGTarget_SendByte(TPI_CMD_SLDCS | TPI_STATUS_REG); + if (XPROGTarget_ReceiveByte() & TPI_STATUS_NVM) + return true; + } return false; } -/** Retrieves the CRC value of the given memory space. - * - * \param[in] CRCCommand NVM CRC command to issue to the target - * \param[out] CRCDest CRC Destination when read from the target - * - * \return Boolean true if the command sequence complete successfully - */ -bool XMEGANVM_GetMemoryCRC(const uint8_t CRCCommand, uint32_t* const CRCDest) -{ - // TODO - - return true; -} - /** Reads memory from the target's memory spaces. * * \param[in] ReadAddress Start address to read from within the target's address space @@ -84,7 +65,7 @@ bool XMEGANVM_GetMemoryCRC(const uint8_t CRCCommand, uint32_t* const CRCDest) * * \return Boolean true if the command sequence complete successfully */ -bool XMEGANVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, const uint16_t ReadSize) +bool TINYNVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, const uint16_t ReadSize) { // TODO @@ -99,7 +80,7 @@ bool XMEGANVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, const * * \return Boolean true if the command sequence complete successfully */ -bool XMEGANVM_WriteMemory(const uint8_t WriteCommand, const uint32_t WriteAddress, const uint8_t* WriteBuffer) +bool TINYNVM_WriteMemory(const uint8_t WriteCommand, const uint32_t WriteAddress, const uint8_t* WriteBuffer) { // TODO @@ -113,7 +94,7 @@ bool XMEGANVM_WriteMemory(const uint8_t WriteCommand, const uint32_t WriteAddres * * \return Boolean true if the command sequence complete successfully */ -bool XMEGANVM_EraseMemory(const uint8_t EraseCommand, const uint32_t Address) +bool TINYNVM_EraseMemory(const uint8_t EraseCommand, const uint32_t Address) { // TODO