Index: App/Common.h =================================================================== diff -u -r6c8c486d26306662402945537c5acaea2709d85b -r8ca991f9c04d8d301ada71eabc297f514b0d6cf8 --- App/Common.h (.../Common.h) (revision 6c8c486d26306662402945537c5acaea2709d85b) +++ App/Common.h (.../Common.h) (revision 8ca991f9c04d8d301ada71eabc297f514b0d6cf8) @@ -23,7 +23,7 @@ #ifndef _VECTORCAST_ #define RM46_EVAL_BOARD_TARGET 1 -// #define SIMULATE_UI 1 + #define SIMULATE_UI 1 #endif // ********** public definitions ********** Index: App/Services/FPGA.c =================================================================== diff -u -r6c8c486d26306662402945537c5acaea2709d85b -r8ca991f9c04d8d301ada71eabc297f514b0d6cf8 --- App/Services/FPGA.c (.../FPGA.c) (revision 6c8c486d26306662402945537c5acaea2709d85b) +++ App/Services/FPGA.c (.../FPGA.c) (revision 8ca991f9c04d8d301ada71eabc297f514b0d6cf8) @@ -70,10 +70,8 @@ U08 fpgaRev; U08 fpgaDiag; U08 gap1; - U08 fpgaStatusLow; - U08 fpgaStatusHigh; - U08 fpgaControlLow; - U08 fpgaControlHigh; + U16 fpgaStatus; + U16 fpgaControl; } FPGA_HEADER_T; typedef struct @@ -125,8 +123,8 @@ static BOOL fpgaWriteCommandInProgress = FALSE; static BOOL fpgaReadCommandInProgress = FALSE; static BOOL fpgaBulkWriteAndReadInProgress = FALSE; -static BOOL fpgaWriteCommandACKed = FALSE; -static BOOL fpgaReadCommandACKed = FALSE; +static BOOL fpgaWriteCommandResponseReceived = FALSE; +static BOOL fpgaReadCommandResponseReceived = FALSE; // FPGA comm buffers static U08 fpgaWriteCmdBuffer[FPGA_WRITE_CMD_BUFFER_LEN]; @@ -282,8 +280,8 @@ *************************************************************************/ static void resetFPGACommFlags( void ) { - fpgaWriteCommandACKed = FALSE; - fpgaReadCommandACKed = FALSE; + fpgaWriteCommandResponseReceived = FALSE; + fpgaReadCommandResponseReceived = FALSE; fpgaWriteCommandInProgress = FALSE; fpgaReadCommandInProgress = FALSE; fpgaBulkWriteAndReadInProgress = FALSE; @@ -308,12 +306,12 @@ if ( TRUE == fpgaWriteCommandInProgress ) { fpgaWriteCommandInProgress = FALSE; - fpgaWriteCommandACKed = ( fpgaWriteResponseBuffer[0] == FPGA_WRITE_CMD_ACK ? TRUE : FALSE ); + fpgaWriteCommandResponseReceived = TRUE; } else if ( TRUE == fpgaReadCommandInProgress ) { fpgaReadCommandInProgress = FALSE; - fpgaReadCommandACKed = ( fpgaReadResponseBuffer[0] == FPGA_READ_CMD_ACK ? TRUE : FALSE ); + fpgaReadCommandResponseReceived = TRUE; } // see if we want to follow up with a bulk read command @@ -355,8 +353,6 @@ *************************************************************************/ void execFPGAIn( void ) { - resetFPGACommFlags(); - // FPGA incoming state machine switch ( fpgaState ) { @@ -389,6 +385,9 @@ } break; } + + // reset comm flags after processing incoming responses + resetFPGACommFlags(); } /************************************************************************* @@ -402,8 +401,6 @@ *************************************************************************/ void execFPGAOut( void ) { - resetFPGACommFlags(); - // FPGA outgoing state machine switch ( fpgaState ) { @@ -482,15 +479,15 @@ FPGA_STATE_T result = FPGA_STATE_READ_HEADER; // did we get an FPGA response? - if ( TRUE == fpgaReadCommandACKed ) + if ( TRUE == fpgaReadCommandResponseReceived ) { // did FPGA Ack the read command? if ( fpgaReadResponseBuffer[0] == FPGA_READ_CMD_ACK ) { // does the FPGA response CRC check out? if ( 1 ) // TODO - check response CRC { // capture the read values - memcpy( &fpgaHeader, fpgaReadResponseBuffer, sizeof(FPGA_HEADER_T) ); + memcpy( &fpgaHeader, &fpgaReadResponseBuffer[1], sizeof(FPGA_HEADER_T) ); result = FPGA_STATE_WRITE_ALL_ACTUATORS; } } @@ -567,26 +564,22 @@ FPGA_STATE_T result = FPGA_STATE_WRITE_ALL_ACTUATORS; // check bulk write command success - if ( FALSE == fpgaWriteCommandACKed ) + if ( ( FALSE == fpgaWriteCommandResponseReceived ) || ( fpgaWriteResponseBuffer[0] != FPGA_WRITE_CMD_ACK ) { // TODO - ??? } // if bulk read command is ACK'd, collect the readings - if ( TRUE == fpgaReadCommandACKed ) + if ( TRUE == fpgaReadCommandResponseReceived ) { - // did we get an FPGA response? - if ( ( TRUE == fpgaWriteCommandACKed ) && ( TRUE == fpgaReadCommandACKed ) ) + // did FPGA Ack the read command? + if ( fpgaReadResponseBuffer[0] == FPGA_READ_CMD_ACK ) { - // did FPGA Ack the read command? - if ( fpgaReadResponseBuffer[0] == FPGA_READ_CMD_ACK ) - { - // does the FPGA response CRC check out? - if ( 1 ) // TODO - check response CRC - { // capture the read values - memcpy( &fpgaSensorReadings, fpgaReadResponseBuffer, sizeof(FPGA_SENSORS_T) ); - result = FPGA_STATE_WRITE_ALL_ACTUATORS; - } + // does the FPGA response CRC check out? + if ( 1 ) // TODO - check response CRC + { // capture the read values + memcpy( &fpgaSensorReadings, fpgaReadResponseBuffer, sizeof(FPGA_SENSORS_T) ); + result = FPGA_STATE_WRITE_ALL_ACTUATORS; } } } Index: App/Services/SystemCommMessages.c =================================================================== diff -u -r40a959e1341c8964f872df462ac3a2d874e3b0b3 -r8ca991f9c04d8d301ada71eabc297f514b0d6cf8 --- App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 40a959e1341c8964f872df462ac3a2d874e3b0b3) +++ App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 8ca991f9c04d8d301ada71eabc297f514b0d6cf8) @@ -37,7 +37,7 @@ typedef struct { U08 reset; - U08 state; + U32 state; } TEST_OVERRIDE_CARGO_T; #pragma pack(pop)