From 2f95eea14689d30a3172a7e1e30980072bf23fac Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Thu, 20 Aug 2009 07:16:55 +0000 Subject: Add LOAD ADDRESS command parsing to the V2 Protocol hander in the AVRISP project. Fix up references to functions in the Endpoint/Pipe documentation. --- Projects/Unfinished/AVRISP/Lib/V2Protocol.c | 20 ++++++++++++++++++++ Projects/Unfinished/AVRISP/Lib/V2Protocol.h | 1 + 2 files changed, 21 insertions(+) (limited to 'Projects') diff --git a/Projects/Unfinished/AVRISP/Lib/V2Protocol.c b/Projects/Unfinished/AVRISP/Lib/V2Protocol.c index dfa27ad9e..e55a7002e 100644 --- a/Projects/Unfinished/AVRISP/Lib/V2Protocol.c +++ b/Projects/Unfinished/AVRISP/Lib/V2Protocol.c @@ -36,6 +36,9 @@ #define INCLUDE_FROM_V2PROTOCOL_C #include "V2Protocol.h" +uint32_t CurrentAddress; + + /* Table of masks for SPI_Init() from a given PARAM_SCK_DURATION value */ static const uint8_t SPIMaskFromSCKDuration[MAX_SPI_SETTINGS] = { @@ -88,6 +91,9 @@ void V2Protocol_ProcessCommand(void) case CMD_GET_PARAMETER: V2Protocol_Command_GetSetParam(V2Command); break; + case CMD_LOAD_ADDRESS: + V2Protocol_Command_LoadAddress(); + break; case CMD_SPI_MULTI: V2Protocol_Command_SPIMulti(); break; @@ -127,6 +133,7 @@ static void V2Protocol_Command_SignOn(void) Endpoint_WaitUntilReady(); V2Protocol_ReconfigureSPI(); + CurrentAddress = 0; Endpoint_Write_Byte(CMD_SIGN_ON); Endpoint_Write_Byte(STATUS_CMD_OK); @@ -166,6 +173,19 @@ static void V2Protocol_Command_GetSetParam(uint8_t V2Command) Endpoint_ClearIN(); } +static void V2Protocol_Command_LoadAddress(void) +{ + CurrentAddress = Endpoint_Read_DWord_LE(); + + Endpoint_ClearOUT(); + Endpoint_SetEndpointDirection(ENDPOINT_DIR_IN); + Endpoint_WaitUntilReady(); + + Endpoint_Write_Byte(CMD_LOAD_ADDRESS); + Endpoint_Write_Byte(STATUS_CMD_OK); + Endpoint_ClearIN(); +} + static void V2Protocol_Command_SPIMulti(void) { uint8_t TxBytes = Endpoint_Read_Byte(); diff --git a/Projects/Unfinished/AVRISP/Lib/V2Protocol.h b/Projects/Unfinished/AVRISP/Lib/V2Protocol.h index 03ca83536..5283f1986 100644 --- a/Projects/Unfinished/AVRISP/Lib/V2Protocol.h +++ b/Projects/Unfinished/AVRISP/Lib/V2Protocol.h @@ -62,6 +62,7 @@ static void V2Protocol_Command_Unknown(uint8_t V2Command); static void V2Protocol_Command_SignOn(void); static void V2Protocol_Command_GetSetParam(uint8_t V2Command); + static void V2Protocol_Command_LoadAddress(void); static void V2Protocol_Command_SPIMulti(void); #endif -- cgit v1.2.3