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.

This commit is contained in:
Dean Camera 2009-12-23 14:42:50 +00:00
parent bd5e8f07b7
commit 69802635ed
8 changed files with 34 additions and 142 deletions

View File

@ -61,13 +61,16 @@
/** Total number of allowable ISP programming speeds supported by the device */ /** Total number of allowable ISP programming speeds supported by the device */
#define TOTAL_ISP_PROGRAMMING_SPEEDS 7 #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: */ /* Function Prototypes: */
uint8_t ISPTarget_GetSPIPrescalerMask(void); uint8_t ISPTarget_GetSPIPrescalerMask(void);
void ISPTarget_ChangeTargetResetLine(const bool ResetTarget); void ISPTarget_ChangeTargetResetLine(const bool ResetTarget);
uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode, const uint16_t PollAddress, uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode, const uint16_t PollAddress,
const uint8_t PollValue, const uint8_t DelayMS, const uint8_t PollValue, const uint8_t DelayMS,
const uint8_t ReadMemCommand); const uint8_t ReadMemCommand);
uint8_t ISPTarget_WaitWhileTargetBusy(void); uint8_t ISPTarget_WaitWhileTargetBusy(void);
void ISPTarget_LoadExtendedAddress(void); void ISPTarget_LoadExtendedAddress(void);
#endif #endif

View File

@ -54,7 +54,7 @@
#define ENABLE_PDI_PROTOCOL #define ENABLE_PDI_PROTOCOL
#endif #endif
#endif #endif
/* Macros: */ /* Macros: */
#define XPRG_CMD_ENTER_PROGMODE 0x01 #define XPRG_CMD_ENTER_PROGMODE 0x01
#define XPRG_CMD_LEAVE_PROGMODE 0x02 #define XPRG_CMD_LEAVE_PROGMODE 0x02

View File

@ -68,9 +68,11 @@
#define BITBANG_PDICLOCK_MASK RESET_LINE_MASK #define BITBANG_PDICLOCK_MASK RESET_LINE_MASK
#endif #endif
/** Total number of bits in a single USART frame */
#define BITS_IN_PDI_FRAME 12 #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_LDS 0x00
#define PDI_CMD_LD 0x20 #define PDI_CMD_LD 0x20

View File

@ -38,107 +38,6 @@
#if defined(ENABLE_TPI_PROTOCOL) || defined(__DOXYGEN__) #if defined(ENABLE_TPI_PROTOCOL) || defined(__DOXYGEN__)
/** Sends the given NVM register address to the target. // TODO
*
* \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;
}
#endif #endif

View File

@ -43,6 +43,7 @@
#include <LUFA/Common/Common.h> #include <LUFA/Common/Common.h>
#include "TPIProtocol.h"
#include "TPITarget.h" #include "TPITarget.h"
/* Preprocessor Checks: */ /* Preprocessor Checks: */
@ -56,18 +57,6 @@
#endif #endif
/* Defines: */ /* Defines: */
#define TINY_NVM_BUSY_TIMEOUT_MS 200 #define TINY_NVM_BUSY_TIMEOUT_MS 100
/* 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);
#endif #endif

View File

@ -64,9 +64,11 @@
#define BITBANG_TPICLOCK_PIN PINB #define BITBANG_TPICLOCK_PIN PINB
#define BITBANG_TPICLOCK_MASK (1 << 1) #define BITBANG_TPICLOCK_MASK (1 << 1)
/** Total number of bits in a single USART frame */
#define BITS_IN_TPI_FRAME 12 #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_SLD 0x20
#define TPI_CMD_SST 0x60 #define TPI_CMD_SST 0x60

View File

@ -59,14 +59,11 @@
/* Macros: */ /* Macros: */
/** Programmer ID string, returned to the host during the CMD_SIGN_ON command processing */ /** Programmer ID string, returned to the host during the CMD_SIGN_ON command processing */
#define PROGRAMMER_ID "AVRISP_MK2" #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
/* External Variables: */ /* External Variables: */
extern uint32_t CurrentAddress; extern uint32_t CurrentAddress;
extern bool MustSetAddress; extern bool MustSetAddress;
/* Function Prototypes: */ /* Function Prototypes: */
void V2Protocol_ProcessCommand(void); void V2Protocol_ProcessCommand(void);

View File

@ -44,43 +44,43 @@ static ParameterItem_t ParameterTable[] =
{ {
{ .ParamID = PARAM_BUILD_NUMBER_LOW, { .ParamID = PARAM_BUILD_NUMBER_LOW,
.ParamValue = (LUFA_VERSION_INTEGER >> 8), .ParamValue = (LUFA_VERSION_INTEGER >> 8),
.ParamPrivileges = PARAM_PRIV_READ }, .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_BUILD_NUMBER_HIGH, { .ParamID = PARAM_BUILD_NUMBER_HIGH,
.ParamValue = (LUFA_VERSION_INTEGER & 0xFF), .ParamValue = (LUFA_VERSION_INTEGER & 0xFF),
.ParamPrivileges = PARAM_PRIV_READ }, .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_HW_VER, { .ParamID = PARAM_HW_VER,
.ParamValue = 0x00, .ParamValue = 0x00,
.ParamPrivileges = PARAM_PRIV_READ }, .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_SW_MAJOR, { .ParamID = PARAM_SW_MAJOR,
.ParamValue = 0x01, .ParamValue = 0x01,
.ParamPrivileges = PARAM_PRIV_READ }, .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_SW_MINOR, { .ParamID = PARAM_SW_MINOR,
.ParamValue = 0x0C, .ParamValue = 0x0D,
.ParamPrivileges = PARAM_PRIV_READ }, .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_VTARGET, { .ParamID = PARAM_VTARGET,
.ParamValue = 0x32, .ParamValue = 0x32,
.ParamPrivileges = PARAM_PRIV_READ }, .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_SCK_DURATION, { .ParamID = PARAM_SCK_DURATION,
.ParamValue = (TOTAL_ISP_PROGRAMMING_SPEEDS - 1), .ParamValue = (TOTAL_ISP_PROGRAMMING_SPEEDS - 1),
.ParamPrivileges = PARAM_PRIV_READ | PARAM_PRIV_WRITE }, .ParamPrivileges = PARAM_PRIV_READ | PARAM_PRIV_WRITE },
{ .ParamID = PARAM_RESET_POLARITY, { .ParamID = PARAM_RESET_POLARITY,
.ParamValue = 0x00, .ParamValue = 0x00,
.ParamPrivileges = PARAM_PRIV_WRITE }, .ParamPrivileges = PARAM_PRIV_WRITE },
{ .ParamID = PARAM_STATUS_TGT_CONN, { .ParamID = PARAM_STATUS_TGT_CONN,
.ParamValue = 0x00, .ParamValue = 0x00,
.ParamPrivileges = PARAM_PRIV_READ }, .ParamPrivileges = PARAM_PRIV_READ },
{ .ParamID = PARAM_DISCHARGEDELAY, { .ParamID = PARAM_DISCHARGEDELAY,
.ParamValue = 0x00, .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) if (ParamID == ParameterTable[TableIndex].ParamID)
return &ParameterTable[TableIndex]; return &ParameterTable[TableIndex];
} }
return NULL; return NULL;
} }