aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-12-23 14:42:50 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-12-23 14:42:50 +0000
commit69802635ed89aade8be0dea223971bc1afc4ad39 (patch)
tree0fd2e01d2db0382ae2ca49d2a993b97c1867713a
parentbd5e8f07b71b4fa0c058c0edfa8ff3f59ab31610 (diff)
downloadlufa-69802635ed89aade8be0dea223971bc1afc4ad39.tar.gz
lufa-69802635ed89aade8be0dea223971bc1afc4ad39.tar.bz2
lufa-69802635ed89aade8be0dea223971bc1afc4ad39.zip
Lower timeout periods in the AVRISP project. Increment firmware minor revision number in the AVRISP project so that it remains comatible with the latest AVRStudio without an upgrade warning.
-rw-r--r--Projects/AVRISP/Lib/ISPTarget.h17
-rw-r--r--Projects/AVRISP/Lib/PDIProtocol.h2
-rw-r--r--Projects/AVRISP/Lib/PDITarget.h4
-rw-r--r--Projects/AVRISP/Lib/TINYNVM.c103
-rw-r--r--Projects/AVRISP/Lib/TINYNVM.h15
-rw-r--r--Projects/AVRISP/Lib/TPITarget.h4
-rw-r--r--Projects/AVRISP/Lib/V2Protocol.h7
-rw-r--r--Projects/AVRISP/Lib/V2ProtocolParams.c24
8 files changed, 34 insertions, 142 deletions
diff --git a/Projects/AVRISP/Lib/ISPTarget.h b/Projects/AVRISP/Lib/ISPTarget.h
index 2af4541a9..62d8bbb4b 100644
--- a/Projects/AVRISP/Lib/ISPTarget.h
+++ b/Projects/AVRISP/Lib/ISPTarget.h
@@ -61,13 +61,16 @@
/** Total number of allowable ISP programming speeds supported by the device */
#define TOTAL_ISP_PROGRAMMING_SPEEDS 7
+ /** Timeout in milliseconds of target busy-wait loops waiting for a command to complete */
+ #define TARGET_BUSY_TIMEOUT_MS 100
+
/* Function Prototypes: */
- uint8_t ISPTarget_GetSPIPrescalerMask(void);
- void ISPTarget_ChangeTargetResetLine(const bool ResetTarget);
- uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode, const uint16_t PollAddress,
- const uint8_t PollValue, const uint8_t DelayMS,
- const uint8_t ReadMemCommand);
- uint8_t ISPTarget_WaitWhileTargetBusy(void);
- void ISPTarget_LoadExtendedAddress(void);
+ uint8_t ISPTarget_GetSPIPrescalerMask(void);
+ void ISPTarget_ChangeTargetResetLine(const bool ResetTarget);
+ uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode, const uint16_t PollAddress,
+ const uint8_t PollValue, const uint8_t DelayMS,
+ const uint8_t ReadMemCommand);
+ uint8_t ISPTarget_WaitWhileTargetBusy(void);
+ void ISPTarget_LoadExtendedAddress(void);
#endif
diff --git a/Projects/AVRISP/Lib/PDIProtocol.h b/Projects/AVRISP/Lib/PDIProtocol.h
index f2c38d596..c1fbef466 100644
--- a/Projects/AVRISP/Lib/PDIProtocol.h
+++ b/Projects/AVRISP/Lib/PDIProtocol.h
@@ -54,7 +54,7 @@
#define ENABLE_PDI_PROTOCOL
#endif
#endif
-
+
/* Macros: */
#define XPRG_CMD_ENTER_PROGMODE 0x01
#define XPRG_CMD_LEAVE_PROGMODE 0x02
diff --git a/Projects/AVRISP/Lib/PDITarget.h b/Projects/AVRISP/Lib/PDITarget.h
index da89d55f1..cf7780c17 100644
--- a/Projects/AVRISP/Lib/PDITarget.h
+++ b/Projects/AVRISP/Lib/PDITarget.h
@@ -68,9 +68,11 @@
#define BITBANG_PDICLOCK_MASK RESET_LINE_MASK
#endif
+ /** Total number of bits in a single USART frame */
#define BITS_IN_PDI_FRAME 12
- #define PDI_NVM_TIMEOUT_MS 200
+ /** Timeout in milliseconds of a PDI busy-wait command */
+ #define PDI_NVM_TIMEOUT_MS 100
#define PDI_CMD_LDS 0x00
#define PDI_CMD_LD 0x20
diff --git a/Projects/AVRISP/Lib/TINYNVM.c b/Projects/AVRISP/Lib/TINYNVM.c
index 515e11385..206ea39f2 100644
--- a/Projects/AVRISP/Lib/TINYNVM.c
+++ b/Projects/AVRISP/Lib/TINYNVM.c
@@ -38,107 +38,6 @@
#if defined(ENABLE_TPI_PROTOCOL) || defined(__DOXYGEN__)
-/** Sends the given NVM register address to the target.
- *
- * \param[in] Register NVM register whose absolute address is to be sent
- */
-void TINYNVM_SendNVMRegAddress(const uint8_t Register)
-{
- // TODO
-}
-
-/** Sends the given 32-bit absolute address to the target.
- *
- * \param[in] AbsoluteAddress Absolute address to send to the target
- */
-void TINYNVM_SendAddress(const uint32_t AbsoluteAddress)
-{
- // TODO
-}
-
-/** 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 TINYNVM_WaitWhileNVMControllerBusy(void)
-{
- // TODO
- 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 TINYNVM_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
- * \param[out] ReadBuffer Buffer to store read data into
- * \param[in] ReadSize Number of bytes to read
- *
- * \return Boolean true if the command sequence complete successfully
- */
-bool TINYNVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, const uint16_t ReadSize)
-{
- // TODO
- return true;
-}
-
-/** 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
- *
- * \return Boolean true if the command sequence complete successfully
- */
-bool TINYNVM_WriteByteMemory(const uint8_t WriteCommand, const uint32_t WriteAddress, const uint8_t* WriteBuffer)
-{
- // TODO
- return true;
-}
-
-/** Writes page addressed memory to the target's memory spaces.
- *
- * \param[in] WriteBuffCommand Command to send to the device to write a byte to the memory page buffer
- * \param[in] EraseBuffCommand Command to send to the device to erase the memory page buffer
- * \param[in] WritePageCommand Command to send to the device to write the page buffer to the destination memory
- * \param[in] PageMode Bitfield indicating what operations need to be executed on the specified page
- * \param[in] WriteAddress Start address to write the page data to within the target's address space
- * \param[in] WriteBuffer Buffer to source data from
- * \param[in] WriteSize Number of bytes to write
- *
- * \return Boolean true if the command sequence complete successfully
- */
-bool TINYNVM_WritePageMemory(const uint8_t WriteBuffCommand, const uint8_t EraseBuffCommand,
- const uint8_t WritePageCommand, const uint8_t PageMode, const uint32_t WriteAddress,
- const uint8_t* WriteBuffer, const uint16_t WriteSize)
-{
- // TODO
- return true;
-}
-
-/** Erases a specific memory space of the target.
- *
- * \param[in] EraseCommand NVM erase command to send to the device
- * \param[in] Address Address inside the memory space to erase
- *
- * \return Boolean true if the command sequence complete successfully
- */
-bool TINYNVM_EraseMemory(const uint8_t EraseCommand, const uint32_t Address)
-{
- // TODO
- return true;
-}
+// TODO
#endif
diff --git a/Projects/AVRISP/Lib/TINYNVM.h b/Projects/AVRISP/Lib/TINYNVM.h
index 585fce8c9..eca3c98b8 100644
--- a/Projects/AVRISP/Lib/TINYNVM.h
+++ b/Projects/AVRISP/Lib/TINYNVM.h
@@ -43,6 +43,7 @@
#include <LUFA/Common/Common.h>
+ #include "TPIProtocol.h"
#include "TPITarget.h"
/* Preprocessor Checks: */
@@ -56,18 +57,6 @@
#endif
/* Defines: */
- #define TINY_NVM_BUSY_TIMEOUT_MS 200
-
- /* Function Prototypes: */
- void TINYNVM_SendNVMRegAddress(const uint8_t Register);
- void TINYNVM_SendAddress(const uint32_t AbsoluteAddress);
- bool TINYNVM_WaitWhileNVMControllerBusy(void);
- bool TINYNVM_GetMemoryCRC(const uint8_t CRCCommand, uint32_t* const CRCDest);
- bool TINYNVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, const uint16_t ReadSize);
- bool TINYNVM_WriteByteMemory(const uint8_t WriteCommand, const uint32_t WriteAddress, const uint8_t* WriteBuffer);
- bool TINYNVM_WritePageMemory(const uint8_t WriteBuffCommand, const uint8_t EraseBuffCommand,
- const uint8_t WritePageCommand, const uint8_t PageMode, const uint32_t WriteAddress,
- const uint8_t* WriteBuffer, const uint16_t WriteSize);
- bool TINYNVM_EraseMemory(const uint8_t EraseCommand, const uint32_t Address);
+ #define TINY_NVM_BUSY_TIMEOUT_MS 100
#endif
diff --git a/Projects/AVRISP/Lib/TPITarget.h b/Projects/AVRISP/Lib/TPITarget.h
index e11e07551..596bdce21 100644
--- a/Projects/AVRISP/Lib/TPITarget.h
+++ b/Projects/AVRISP/Lib/TPITarget.h
@@ -64,9 +64,11 @@
#define BITBANG_TPICLOCK_PIN PINB
#define BITBANG_TPICLOCK_MASK (1 << 1)
+ /** Total number of bits in a single USART frame */
#define BITS_IN_TPI_FRAME 12
- #define TPI_NVM_TIMEOUT_MS 200
+ /** Timeout in milliseconds of a PDI busy-wait command */
+ #define TPI_NVM_TIMEOUT_MS 100
#define TPI_CMD_SLD 0x20
#define TPI_CMD_SST 0x60
diff --git a/Projects/AVRISP/Lib/V2Protocol.h b/Projects/AVRISP/Lib/V2Protocol.h
index b43ae89c5..ef4d2eb63 100644
--- a/Projects/AVRISP/Lib/V2Protocol.h
+++ b/Projects/AVRISP/Lib/V2Protocol.h
@@ -59,14 +59,11 @@
/* Macros: */
/** Programmer ID string, returned to the host during the CMD_SIGN_ON command processing */
- #define PROGRAMMER_ID "AVRISP_MK2"
-
- /** Timeout in milliseconds of target busy-wait loops waiting for a command to complete */
- #define TARGET_BUSY_TIMEOUT_MS 240
+ #define PROGRAMMER_ID "AVRISP_MK2"
/* External Variables: */
extern uint32_t CurrentAddress;
- extern bool MustSetAddress;
+ extern bool MustSetAddress;
/* Function Prototypes: */
void V2Protocol_ProcessCommand(void);
diff --git a/Projects/AVRISP/Lib/V2ProtocolParams.c b/Projects/AVRISP/Lib/V2ProtocolParams.c
index f900d7ecd..6b7f84aa3 100644
--- a/Projects/AVRISP/Lib/V2ProtocolParams.c
+++ b/Projects/AVRISP/Lib/V2ProtocolParams.c
@@ -44,43 +44,43 @@ static ParameterItem_t ParameterTable[] =
{
{ .ParamID = PARAM_BUILD_NUMBER_LOW,
.ParamValue = (LUFA_VERSION_INTEGER >> 8),
- .ParamPrivileges = PARAM_PRIV_READ },
+ .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_BUILD_NUMBER_HIGH,
.ParamValue = (LUFA_VERSION_INTEGER & 0xFF),
- .ParamPrivileges = PARAM_PRIV_READ },
+ .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_HW_VER,
.ParamValue = 0x00,
- .ParamPrivileges = PARAM_PRIV_READ },
+ .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_SW_MAJOR,
.ParamValue = 0x01,
- .ParamPrivileges = PARAM_PRIV_READ },
+ .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_SW_MINOR,
- .ParamValue = 0x0C,
- .ParamPrivileges = PARAM_PRIV_READ },
+ .ParamValue = 0x0D,
+ .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_VTARGET,
.ParamValue = 0x32,
- .ParamPrivileges = PARAM_PRIV_READ },
+ .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_SCK_DURATION,
.ParamValue = (TOTAL_ISP_PROGRAMMING_SPEEDS - 1),
- .ParamPrivileges = PARAM_PRIV_READ | PARAM_PRIV_WRITE },
+ .ParamPrivileges = PARAM_PRIV_READ | PARAM_PRIV_WRITE },
{ .ParamID = PARAM_RESET_POLARITY,
.ParamValue = 0x00,
- .ParamPrivileges = PARAM_PRIV_WRITE },
+ .ParamPrivileges = PARAM_PRIV_WRITE },
{ .ParamID = PARAM_STATUS_TGT_CONN,
.ParamValue = 0x00,
- .ParamPrivileges = PARAM_PRIV_READ },
+ .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_DISCHARGEDELAY,
.ParamValue = 0x00,
- .ParamPrivileges = PARAM_PRIV_WRITE },
+ .ParamPrivileges = PARAM_PRIV_WRITE },
};
@@ -173,6 +173,6 @@ static ParameterItem_t* V2Params_GetParamFromTable(const uint8_t ParamID)
if (ParamID == ParameterTable[TableIndex].ParamID)
return &ParameterTable[TableIndex];
}
-
+
return NULL;
}