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.

pull/1469/head
Dean Camera 15 years ago
parent bd5e8f07b7
commit 69802635ed

@ -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

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

@ -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

@ -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

@ -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

@ -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

@ -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);

@ -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;
}

Loading…
Cancel
Save