Lower timeout periods in the AVRISP project. Increment firmware minor revision number...
authorDean Camera <dean@fourwalledcubicle.com>
Wed, 23 Dec 2009 14:42:50 +0000 (14:42 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Wed, 23 Dec 2009 14:42:50 +0000 (14:42 +0000)
Projects/AVRISP/Lib/ISPTarget.h
Projects/AVRISP/Lib/PDIProtocol.h
Projects/AVRISP/Lib/PDITarget.h
Projects/AVRISP/Lib/TINYNVM.c
Projects/AVRISP/Lib/TINYNVM.h
Projects/AVRISP/Lib/TPITarget.h
Projects/AVRISP/Lib/V2Protocol.h
Projects/AVRISP/Lib/V2ProtocolParams.c

index 2af4541..62d8bbb 100644 (file)
                /** Total number of allowable ISP programming speeds supported by the device */\r
                #define TOTAL_ISP_PROGRAMMING_SPEEDS  7\r
 \r
                /** Total number of allowable ISP programming speeds supported by the device */\r
                #define TOTAL_ISP_PROGRAMMING_SPEEDS  7\r
 \r
+               /** Timeout in milliseconds of target busy-wait loops waiting for a command to complete */\r
+               #define TARGET_BUSY_TIMEOUT_MS        100\r
+\r
        /* Function Prototypes: */\r
        /* Function Prototypes: */\r
-                       uint8_t ISPTarget_GetSPIPrescalerMask(void);\r
-                       void    ISPTarget_ChangeTargetResetLine(const bool ResetTarget);\r
-                       uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode, const uint16_t PollAddress,\r
-                                                             const uint8_t PollValue, const uint8_t DelayMS,\r
-                                                             const uint8_t ReadMemCommand);\r
-                       uint8_t ISPTarget_WaitWhileTargetBusy(void);\r
-                       void    ISPTarget_LoadExtendedAddress(void);\r
+               uint8_t ISPTarget_GetSPIPrescalerMask(void);\r
+               void    ISPTarget_ChangeTargetResetLine(const bool ResetTarget);\r
+               uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode, const uint16_t PollAddress,\r
+                                                     const uint8_t PollValue, const uint8_t DelayMS,\r
+                                                     const uint8_t ReadMemCommand);\r
+               uint8_t ISPTarget_WaitWhileTargetBusy(void);\r
+               void    ISPTarget_LoadExtendedAddress(void);\r
 \r
 #endif\r
 \r
 #endif\r
index f2c38d5..c1fbef4 100644 (file)
@@ -54,7 +54,7 @@
                                #define ENABLE_PDI_PROTOCOL\r
                        #endif\r
                #endif\r
                                #define ENABLE_PDI_PROTOCOL\r
                        #endif\r
                #endif\r
-\r
+       \r
        /* Macros: */\r
                #define XPRG_CMD_ENTER_PROGMODE             0x01\r
                #define XPRG_CMD_LEAVE_PROGMODE             0x02\r
        /* Macros: */\r
                #define XPRG_CMD_ENTER_PROGMODE             0x01\r
                #define XPRG_CMD_LEAVE_PROGMODE             0x02\r
index da89d55..cf7780c 100644 (file)
                        #define BITBANG_PDICLOCK_MASK    RESET_LINE_MASK\r
                #endif\r
                \r
                        #define BITBANG_PDICLOCK_MASK    RESET_LINE_MASK\r
                #endif\r
                \r
+               /** Total number of bits in a single USART frame */\r
                #define BITS_IN_PDI_FRAME        12\r
                \r
                #define BITS_IN_PDI_FRAME        12\r
                \r
-               #define PDI_NVM_TIMEOUT_MS       200\r
+               /** Timeout in milliseconds of a PDI busy-wait command */\r
+               #define PDI_NVM_TIMEOUT_MS       100\r
                \r
                #define PDI_CMD_LDS              0x00\r
                #define PDI_CMD_LD               0x20\r
                \r
                #define PDI_CMD_LDS              0x00\r
                #define PDI_CMD_LD               0x20\r
index 515e113..206ea39 100644 (file)
 \r
 #if defined(ENABLE_TPI_PROTOCOL) || defined(__DOXYGEN__)\r
 \r
 \r
 #if defined(ENABLE_TPI_PROTOCOL) || defined(__DOXYGEN__)\r
 \r
-/** Sends the given NVM register address to the target.\r
- *\r
- *  \param[in] Register  NVM register whose absolute address is to be sent\r
- */\r
-void TINYNVM_SendNVMRegAddress(const uint8_t Register)\r
-{\r
-       // TODO\r
-}\r
-\r
-/** Sends the given 32-bit absolute address to the target.\r
- *\r
- *  \param[in] AbsoluteAddress  Absolute address to send to the target\r
- */\r
-void TINYNVM_SendAddress(const uint32_t AbsoluteAddress)\r
-{\r
-       // TODO\r
-}\r
-\r
-/** Waits while the target's NVM controller is busy performing an operation, exiting if the\r
- *  timeout period expires.\r
- *\r
- *  \return Boolean true if the NVM controller became ready within the timeout period, false otherwise\r
- */\r
-bool TINYNVM_WaitWhileNVMControllerBusy(void)\r
-{\r
-       // TODO\r
-       return false;\r
-}\r
-\r
-/** Retrieves the CRC value of the given memory space.\r
- *\r
- *  \param[in]  CRCCommand  NVM CRC command to issue to the target\r
- *  \param[out] CRCDest     CRC Destination when read from the target\r
- *\r
- *  \return Boolean true if the command sequence complete successfully\r
- */\r
-bool TINYNVM_GetMemoryCRC(const uint8_t CRCCommand, uint32_t* const CRCDest)\r
-{\r
-       // TODO\r
-       return true;\r
-}\r
-\r
-/** Reads memory from the target's memory spaces.\r
- *\r
- *  \param[in]  ReadAddress  Start address to read from within the target's address space\r
- *  \param[out] ReadBuffer   Buffer to store read data into\r
- *  \param[in]  ReadSize     Number of bytes to read\r
- *\r
- *  \return Boolean true if the command sequence complete successfully\r
- */\r
-bool TINYNVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, const uint16_t ReadSize)\r
-{\r
-       // TODO\r
-       return true;\r
-}\r
-\r
-/** Writes byte addressed memory to the target's memory spaces.\r
- *\r
- *  \param[in]  WriteCommand  Command to send to the device to write each memory byte\r
- *  \param[in]  WriteAddress  Start address to write to within the target's address space\r
- *  \param[in]  WriteBuffer   Buffer to source data from\r
- *\r
- *  \return Boolean true if the command sequence complete successfully\r
- */\r
-bool TINYNVM_WriteByteMemory(const uint8_t WriteCommand, const uint32_t WriteAddress, const uint8_t* WriteBuffer)\r
-{\r
-       // TODO\r
-       return true;\r
-}\r
-\r
-/** Writes page addressed memory to the target's memory spaces.\r
- *\r
- *  \param[in]  WriteBuffCommand  Command to send to the device to write a byte to the memory page buffer\r
- *  \param[in]  EraseBuffCommand  Command to send to the device to erase the memory page buffer\r
- *  \param[in]  WritePageCommand  Command to send to the device to write the page buffer to the destination memory\r
- *  \param[in]  PageMode          Bitfield indicating what operations need to be executed on the specified page\r
- *  \param[in]  WriteAddress      Start address to write the page data to within the target's address space\r
- *  \param[in]  WriteBuffer       Buffer to source data from\r
- *  \param[in]  WriteSize         Number of bytes to write\r
- *\r
- *  \return Boolean true if the command sequence complete successfully\r
- */\r
-bool TINYNVM_WritePageMemory(const uint8_t WriteBuffCommand, const uint8_t EraseBuffCommand,\r
-                               const uint8_t WritePageCommand, const uint8_t PageMode, const uint32_t WriteAddress,\r
-                               const uint8_t* WriteBuffer, const uint16_t WriteSize)\r
-{\r
-       // TODO\r
-       return true;\r
-}\r
-\r
-/** Erases a specific memory space of the target.\r
- *\r
- *  \param[in] EraseCommand  NVM erase command to send to the device\r
- *  \param[in] Address  Address inside the memory space to erase\r
- *\r
- *  \return Boolean true if the command sequence complete successfully\r
- */\r
-bool TINYNVM_EraseMemory(const uint8_t EraseCommand, const uint32_t Address)\r
-{\r
-       // TODO\r
-       return true;\r
-}\r
+// TODO\r
 \r
 #endif\r
 \r
 #endif\r
index 585fce8..eca3c98 100644 (file)
@@ -43,6 +43,7 @@
                \r
                #include <LUFA/Common/Common.h>\r
                \r
                \r
                #include <LUFA/Common/Common.h>\r
                \r
+               #include "TPIProtocol.h"\r
                #include "TPITarget.h"\r
        \r
        /* Preprocessor Checks: */\r
                #include "TPITarget.h"\r
        \r
        /* Preprocessor Checks: */\r
                #endif\r
 \r
        /* Defines: */\r
                #endif\r
 \r
        /* Defines: */\r
-               #define TINY_NVM_BUSY_TIMEOUT_MS       200\r
-\r
-       /* Function Prototypes: */\r
-               void TINYNVM_SendNVMRegAddress(const uint8_t Register);\r
-               void TINYNVM_SendAddress(const uint32_t AbsoluteAddress);\r
-               bool TINYNVM_WaitWhileNVMControllerBusy(void);\r
-               bool TINYNVM_GetMemoryCRC(const uint8_t CRCCommand, uint32_t* const CRCDest);\r
-               bool TINYNVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, const uint16_t ReadSize);\r
-               bool TINYNVM_WriteByteMemory(const uint8_t WriteCommand, const uint32_t WriteAddress, const uint8_t* WriteBuffer);\r
-               bool TINYNVM_WritePageMemory(const uint8_t WriteBuffCommand, const uint8_t EraseBuffCommand,\r
-                                              const uint8_t WritePageCommand, const uint8_t PageMode, const uint32_t WriteAddress,\r
-                                              const uint8_t* WriteBuffer, const uint16_t WriteSize);\r
-               bool TINYNVM_EraseMemory(const uint8_t EraseCommand, const uint32_t Address);\r
+               #define TINY_NVM_BUSY_TIMEOUT_MS       100\r
 \r
 #endif\r
 \r
 #endif\r
index e11e075..596bdce 100644 (file)
                #define BITBANG_TPICLOCK_PIN     PINB\r
                #define BITBANG_TPICLOCK_MASK    (1 << 1)\r
                \r
                #define BITBANG_TPICLOCK_PIN     PINB\r
                #define BITBANG_TPICLOCK_MASK    (1 << 1)\r
                \r
+               /** Total number of bits in a single USART frame */\r
                #define BITS_IN_TPI_FRAME        12\r
                \r
                #define BITS_IN_TPI_FRAME        12\r
                \r
-               #define TPI_NVM_TIMEOUT_MS       200\r
+               /** Timeout in milliseconds of a PDI busy-wait command */\r
+               #define TPI_NVM_TIMEOUT_MS       100\r
 \r
                #define TPI_CMD_SLD              0x20\r
                #define TPI_CMD_SST              0x60\r
 \r
                #define TPI_CMD_SLD              0x20\r
                #define TPI_CMD_SST              0x60\r
index b43ae89..ef4d2eb 100644 (file)
 
        /* Macros: */\r
                /** Programmer ID string, returned to the host during the CMD_SIGN_ON command processing */
 
        /* Macros: */\r
                /** Programmer ID string, returned to the host during the CMD_SIGN_ON command processing */
-               #define PROGRAMMER_ID             "AVRISP_MK2"\r
-\r
-               /** Timeout in milliseconds of target busy-wait loops waiting for a command to complete */\r
-               #define TARGET_BUSY_TIMEOUT_MS    240
+               #define PROGRAMMER_ID     "AVRISP_MK2"\r
 \r
        /* External Variables: */\r
                extern uint32_t CurrentAddress;\r
 \r
        /* External Variables: */\r
                extern uint32_t CurrentAddress;\r
-               extern bool MustSetAddress;\r
+               extern bool     MustSetAddress;\r
 \r
        /* Function Prototypes: */\r
                void V2Protocol_ProcessCommand(void);\r
 \r
        /* Function Prototypes: */\r
                void V2Protocol_ProcessCommand(void);\r
index f900d7e..6b7f84a 100644 (file)
@@ -44,43 +44,43 @@ static ParameterItem_t ParameterTable[] =
        {\r
                { .ParamID          = PARAM_BUILD_NUMBER_LOW,\r
                  .ParamValue       = (LUFA_VERSION_INTEGER >> 8),\r
        {\r
                { .ParamID          = PARAM_BUILD_NUMBER_LOW,\r
                  .ParamValue       = (LUFA_VERSION_INTEGER >> 8),\r
-                 .ParamPrivileges = PARAM_PRIV_READ                    },\r
+                 .ParamPrivileges  = PARAM_PRIV_READ                    },\r
 \r
                { .ParamID          = PARAM_BUILD_NUMBER_HIGH,\r
                  .ParamValue       = (LUFA_VERSION_INTEGER & 0xFF),\r
 \r
                { .ParamID          = PARAM_BUILD_NUMBER_HIGH,\r
                  .ParamValue       = (LUFA_VERSION_INTEGER & 0xFF),\r
-                 .ParamPrivileges = PARAM_PRIV_READ                    },\r
+                 .ParamPrivileges  = PARAM_PRIV_READ                    },\r
 \r
                { .ParamID          = PARAM_HW_VER,\r
                  .ParamValue       = 0x00,\r
 \r
                { .ParamID          = PARAM_HW_VER,\r
                  .ParamValue       = 0x00,\r
-                 .ParamPrivileges = PARAM_PRIV_READ                    },\r
+                 .ParamPrivileges  = PARAM_PRIV_READ                    },\r
 \r
                { .ParamID          = PARAM_SW_MAJOR,\r
                  .ParamValue       = 0x01,\r
 \r
                { .ParamID          = PARAM_SW_MAJOR,\r
                  .ParamValue       = 0x01,\r
-                 .ParamPrivileges = PARAM_PRIV_READ                    },\r
+                 .ParamPrivileges  = PARAM_PRIV_READ                    },\r
 \r
                { .ParamID          = PARAM_SW_MINOR,\r
 \r
                { .ParamID          = PARAM_SW_MINOR,\r
-                 .ParamValue       = 0x0C,\r
-                 .ParamPrivileges = PARAM_PRIV_READ                    },\r
+                 .ParamValue       = 0x0D,\r
+                 .ParamPrivileges  = PARAM_PRIV_READ                    },\r
 \r
                { .ParamID          = PARAM_VTARGET,\r
                  .ParamValue       = 0x32,\r
 \r
                { .ParamID          = PARAM_VTARGET,\r
                  .ParamValue       = 0x32,\r
-                 .ParamPrivileges = PARAM_PRIV_READ                    },\r
+                 .ParamPrivileges  = PARAM_PRIV_READ                    },\r
 \r
                { .ParamID          = PARAM_SCK_DURATION,\r
                  .ParamValue       = (TOTAL_ISP_PROGRAMMING_SPEEDS - 1),\r
 \r
                { .ParamID          = PARAM_SCK_DURATION,\r
                  .ParamValue       = (TOTAL_ISP_PROGRAMMING_SPEEDS - 1),\r
-                 .ParamPrivileges = PARAM_PRIV_READ | PARAM_PRIV_WRITE },\r
+                 .ParamPrivileges  = PARAM_PRIV_READ | PARAM_PRIV_WRITE },\r
 \r
                { .ParamID          = PARAM_RESET_POLARITY,\r
                  .ParamValue       = 0x00,\r
 \r
                { .ParamID          = PARAM_RESET_POLARITY,\r
                  .ParamValue       = 0x00,\r
-                 .ParamPrivileges = PARAM_PRIV_WRITE                   },\r
+                 .ParamPrivileges  = PARAM_PRIV_WRITE                   },\r
 \r
                { .ParamID          = PARAM_STATUS_TGT_CONN,\r
                  .ParamValue       = 0x00,\r
 \r
                { .ParamID          = PARAM_STATUS_TGT_CONN,\r
                  .ParamValue       = 0x00,\r
-                 .ParamPrivileges = PARAM_PRIV_READ                    },\r
+                 .ParamPrivileges  = PARAM_PRIV_READ                    },\r
 \r
                { .ParamID          = PARAM_DISCHARGEDELAY,\r
                  .ParamValue       = 0x00,\r
 \r
                { .ParamID          = PARAM_DISCHARGEDELAY,\r
                  .ParamValue       = 0x00,\r
-                 .ParamPrivileges = PARAM_PRIV_WRITE                   },\r
+                 .ParamPrivileges  = PARAM_PRIV_WRITE                   },\r
        };\r
 \r
 \r
        };\r
 \r
 \r
@@ -173,6 +173,6 @@ static ParameterItem_t* V2Params_GetParamFromTable(const uint8_t ParamID)
                if (ParamID == ParameterTable[TableIndex].ParamID)\r
                  return &ParameterTable[TableIndex];\r
        }\r
                if (ParamID == ParameterTable[TableIndex].ParamID)\r
                  return &ParameterTable[TableIndex];\r
        }\r
-       \r
+\r
        return NULL;\r
 }\r
        return NULL;\r
 }\r