Index: firmware/App/DGCommon.h =================================================================== diff -u -r439894cb0508e69af3ece09ae57a62feac09e3f2 -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe --- firmware/App/DGCommon.h (.../DGCommon.h) (revision 439894cb0508e69af3ece09ae57a62feac09e3f2) +++ firmware/App/DGCommon.h (.../DGCommon.h) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) @@ -33,12 +33,11 @@ #ifndef _VECTORCAST_ // #define RM46_EVAL_BOARD_TARGET 1 // #define SIMULATE_UI 1 -// #define TASK_TIMING_OUTPUT_ENABLED 1 // re-purposes alarm lamp pins for task timing -// #define CAN_TEST 1 +// #define TASK_TIMING_OUTPUT_ENABLED 1 // re-purposes drain pump enable pin for task timing // #define BETA_V1_BUILD 1 // #define DISABLE_HEATERS_AND_TEMPS 1 -// #define ENABLE_DIP_SWITCHES 1 -// #define EMC_TEST_BUILD 1 + #define ENABLE_DIP_SWITCHES 1 + #define EMC_TEST_BUILD 1 #define ALARMS_DEBUG 1 // #define HEATERS_DEBUG 1 // #define PRESSURES_DEBUG 1 Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -ra7bf3ca23ea37a61000379facae628a31b3ecc59 -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision a7bf3ca23ea37a61000379facae628a31b3ecc59) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) @@ -92,11 +92,7 @@ } // start in init mode -#ifndef CAN_TEST currentMode = DG_MODE_INIT; -#else - currentMode = DG_MODE_FAUL; -#endif currentSubMode = 0; transitionToNewOperationMode( DG_MODE_INIT ); @@ -202,10 +198,8 @@ break; } // end switch -#ifndef CAN_TEST // publish op mode on interval broadcastOperationMode(); -#endif } /*********************************************************************//** Index: firmware/App/Services/CommBuffers.c =================================================================== diff -u -r439894cb0508e69af3ece09ae57a62feac09e3f2 -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe --- firmware/App/Services/CommBuffers.c (.../CommBuffers.c) (revision 439894cb0508e69af3ece09ae57a62feac09e3f2) +++ firmware/App/Services/CommBuffers.c (.../CommBuffers.c) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) @@ -32,12 +32,10 @@ static volatile U32 commBufferByteCount[ NUM_OF_COMM_BUFFERS ][ DOUBLE_BUFFERS ]; // for each buffer, how many bytes does it contain? (also index to next available) static volatile U32 activeDoubleBuffer[ NUM_OF_COMM_BUFFERS ]; // for each buffer, which double buffer is being fed right now? static U08 commBuffers[ NUM_OF_COMM_BUFFERS ][ DOUBLE_BUFFERS ][ COMM_BUFFER_LENGTH ]; // each is double buffered to avoid thread contention -static volatile BOOL bufferGetLock[ NUM_OF_COMM_BUFFERS ]; // prevent getter from accessing active buffer while add in progress static U32 firstBufferOverflowTimeStamp = 0; // time stamp of a prior overflow event - allows for an overflow persistence check // ********** private function prototypes ********** -static void clearBuffer( COMM_BUFFER_T buffer ); static U32 switchDoubleBuffer( COMM_BUFFER_T buffer ); static void getDataFromInactiveBuffer( COMM_BUFFER_T buffer, U08 *data, U32 len ); @@ -72,21 +70,27 @@ * @param buffer : the buffer to clear * @return none *************************************************************************/ -static void clearBuffer( COMM_BUFFER_T buffer ) +void clearBuffer( COMM_BUFFER_T buffer ) { if ( buffer < NUM_OF_COMM_BUFFERS ) { S32 d,i; + // thread protection for queue operations + _disable_IRQ(); + activeDoubleBuffer[ buffer ] = 0; - for ( d = 0; d < DOUBLE_BUFFERS; d++ ) - { - commBufferByteCount[ buffer ][ d ] = 0; - for ( i = 0; i < COMM_BUFFER_LENGTH; i++ ) - { - commBuffers[ buffer ][ d ][ i ] = 0; - } - } + for ( d = 0; d < DOUBLE_BUFFERS; d++ ) + { + commBufferByteCount[ buffer ][ d ] = 0; + for ( i = 0; i < COMM_BUFFER_LENGTH; i++ ) + { + commBuffers[ buffer ][ d ][ i ] = 0; + } + } + + // release thread protection + _enable_IRQ(); } } @@ -118,7 +122,6 @@ // thread protection for queue operations _disable_IRQ(); - bufferGetLock[ buffer ] = TRUE; activeBuffer = activeDoubleBuffer[ buffer ]; currentActiveBufCount = commBufferByteCount[ buffer ][ activeBuffer ]; @@ -139,21 +142,20 @@ } else // buffer too full to add this much data { -#ifdef DEBUG_ENABLED - char debugStr[50]; - sprintf( debugStr, "Buffer Overflow: #%3d, %3d bytes, %02X %02X %02X %02X %02X %02X %02X %02X \n", buffer, len, data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7] ); - sendDebugData( (U08*)debugStr, strlen(debugStr) ); - sendDebugDataToUI( (U08*)debugStr ); -#endif bufferFull = TRUE; - clearBuffer( buffer ); } // release thread protection - bufferGetLock[ buffer ] = FALSE; _enable_IRQ(); // if buffer was full, check persistence - trigger s/w fault if persists if ( TRUE == bufferFull ) { +#ifdef DEBUG_ENABLED + char debugStr[100]; + sprintf( debugStr, "Buf OF:#%3d,%3d, %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X\n", buffer, len, data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7] ); + sendDebugData( (U08*)debugStr, strlen(debugStr) ); + sendDebugDataToUI( (U08*)debugStr ); +#endif + clearBuffer( buffer ); // not first overflow? if ( firstBufferOverflowTimeStamp != 0 ) { @@ -324,14 +326,7 @@ U32 activeBuffer = activeDoubleBuffer[ buffer ]; U32 inactiveBuffer = GET_TOGGLE( activeBuffer, 0, 1 ); - if ( FALSE == bufferGetLock[ buffer ] ) - { - result = commBufferByteCount[ buffer ][ inactiveBuffer ] + commBufferByteCount[ buffer ][ activeBuffer ]; - } - else - { - result = commBufferByteCount[ buffer ][ inactiveBuffer ]; - } + result = commBufferByteCount[ buffer ][ inactiveBuffer ] + commBufferByteCount[ buffer ][ activeBuffer ]; } else // invalid buffer { Index: firmware/App/Services/CommBuffers.h =================================================================== diff -u -r439894cb0508e69af3ece09ae57a62feac09e3f2 -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe --- firmware/App/Services/CommBuffers.h (.../CommBuffers.h) (revision 439894cb0508e69af3ece09ae57a62feac09e3f2) +++ firmware/App/Services/CommBuffers.h (.../CommBuffers.h) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) @@ -46,6 +46,7 @@ // ********** public function prototypes ********** void initCommBuffers( void ); +void clearBuffer( COMM_BUFFER_T buffer ); BOOL addToCommBuffer( COMM_BUFFER_T buffer, U08 *data, U32 len ); U32 getFromCommBuffer( COMM_BUFFER_T buffer, U08 *data, U32 len ); U32 peekFromCommBuffer( COMM_BUFFER_T buffer, U08 *data, U32 len ); Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r439894cb0508e69af3ece09ae57a62feac09e3f2 -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 439894cb0508e69af3ece09ae57a62feac09e3f2) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) @@ -89,7 +89,7 @@ COMM_BUFFER_IN_UART_PC #endif }; - + static U08 lastCANPacketSent[ CAN_MESSAGE_PAYLOAD_SIZE ]; static CAN_MESSAGE_BOX_T lastCANPacketSentChannel = (CAN_MESSAGE_BOX_T)0; static U32 lastCANPacketSentTimeStamp = 0; @@ -180,11 +180,7 @@ *************************************************************************/ BOOL isHDCommunicating( void ) { - BOOL result = hdIsCommunicating; - - hdIsCommunicating = FALSE; - - return result; + return hdIsCommunicating; } /************************************************************************* Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r439894cb0508e69af3ece09ae57a62feac09e3f2 -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 439894cb0508e69af3ece09ae57a62feac09e3f2) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) @@ -1033,7 +1033,7 @@ memcpy( payloadPtr, str, txtLen + 1 ); // serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer - serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_2_UI, ACK_NOT_REQUIRED ); + //serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_2_UI, ACK_NOT_REQUIRED ); } } #endif @@ -1314,29 +1314,3 @@ * @return none *************************************************************************/ DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestDGSafetyShutdownOverrideRequest, testSetSafetyShutdownOverride, testResetSafetyShutdownOverride ) - -#ifdef CAN_TEST -void broadcastCANTest1LargeFrequentMessage() -{ - static U16 seqNo = 0; - MESSAGE_T msg; - U32 i; - - // create a message record - blankMessage( &msg ); - msg.hdr.msgID = 99; - msg.hdr.payloadLen = 96; - - for ( i = 0; i < 12; i++ ) - { - memcpy(&msg.payload[i*8], &seqNo, 2); - seqNo++; - } - memcpy(&msg.payload[94], &seqNo, 2); - seqNo++; - - // serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer - serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_BROADCAST, ACK_NOT_REQUIRED ); -} - -#endif Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r439894cb0508e69af3ece09ae57a62feac09e3f2 -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 439894cb0508e69af3ece09ae57a62feac09e3f2) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) @@ -162,9 +162,4 @@ // MSG_ID_START_STOP_PRIMARY_HEATER BOOL handleStartStopPrimaryHeater( MESSAGE_T * message ); -#ifdef CAN_TEST -// MSG_ID_DG_CAN_TEST_1_LARGE_FREQ -void broadcastCANTest1LargeFrequentMessage(); #endif - -#endif Index: firmware/App/Tasks/TaskGeneral.c =================================================================== diff -u -r439894cb0508e69af3ece09ae57a62feac09e3f2 -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe --- firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 439894cb0508e69af3ece09ae57a62feac09e3f2) +++ firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) @@ -58,7 +58,6 @@ // manage data received from other sub-systems execSystemCommRx(); -#ifndef CAN_TEST // manage RO pump execROPumpController(); @@ -75,29 +74,9 @@ // Trimmer heater state machine execTrimmerHeater(); #endif -#endif // run operation mode state machine execOperationModes(); -#ifdef CAN_TEST - { // send test msg every 100ms - static U32 canTestCtr = 0; - static U32 canTestMsgCtr = 0; - if ( ++canTestCtr >= 2 ) - { - if ( ++canTestMsgCtr <= 23076) - { - broadcastCANTest1LargeFrequentMessage(); - } - else - { - canTestMsgCtr = 23076+1; - } - canTestCtr = 0; - } - } -#endif - // manage data to be transmitted to other sub-systems execSystemCommTx(); Index: firmware/App/Tasks/TaskPriority.c =================================================================== diff -u -r439894cb0508e69af3ece09ae57a62feac09e3f2 -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe --- firmware/App/Tasks/TaskPriority.c (.../TaskPriority.c) (revision 439894cb0508e69af3ece09ae57a62feac09e3f2) +++ firmware/App/Tasks/TaskPriority.c (.../TaskPriority.c) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) @@ -57,7 +57,6 @@ // monitor internal ADC channels execInternalADC(); -#ifndef CAN_TEST // monitor pressures execPressures(); @@ -80,7 +79,6 @@ // Heaters monitor execHeatersMonitor(); -#endif // 2nd pass for FPGA execFPGAOut(); Index: firmware/DG.dil =================================================================== diff -u -r439894cb0508e69af3ece09ae57a62feac09e3f2 -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe --- firmware/DG.dil (.../DG.dil) (revision 439894cb0508e69af3ece09ae57a62feac09e3f2) +++ firmware/DG.dil (.../DG.dil) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) @@ -1,4 +1,4 @@ -# RM46L852PGE 07/15/20 18:27:09 +# RM46L852PGE 07/17/20 13:56:32 # ARCH=RM46L852PGE # Index: firmware/source/sys_startup.c =================================================================== diff -u -r0953a2a6940f9f096fa98cc1e8a5578deab4d8ef -r3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe --- firmware/source/sys_startup.c (.../sys_startup.c) (revision 0953a2a6940f9f096fa98cc1e8a5578deab4d8ef) +++ firmware/source/sys_startup.c (.../sys_startup.c) (revision 3f3729899d6811c763bc8e5ef9baf54a2d5c9cfe) @@ -641,8 +641,8 @@ vimChannelMap( 5, 64, &rtiCompare3Interrupt ); vimChannelMap( 13, 3, &linHighLevelInterrupt ); vimChannelMap( 15, 29, &adc1Group1Interrupt ); - vimChannelMap( 16, 15, &can1HighLevelInterrupt ); - vimChannelMap( 29, 13, &can1LowLevelInterrupt ); + vimChannelMap( 16, 13, &can1HighLevelInterrupt ); + vimChannelMap( 29, 15, &can1LowLevelInterrupt ); vimChannelMap( 40, 5, &dmaBTCAInterrupt ); vimChannelMap( 64, 16, &sciHighLevelInterrupt ); /* USER CODE END */