Index: firmware/App/Drivers/Battery.c =================================================================== diff -u -r53a25d66832105280c55adc778923ee251fe0b28 -r0c439ddcf7e4d3d4bf63df679eacf2f12f01255f --- firmware/App/Drivers/Battery.c (.../Battery.c) (revision 53a25d66832105280c55adc778923ee251fe0b28) +++ firmware/App/Drivers/Battery.c (.../Battery.c) (revision 0c439ddcf7e4d3d4bf63df679eacf2f12f01255f) @@ -388,9 +388,7 @@ generateStopCondition(); if ( ++commFaultPersistentCount > BATTERY_COMM_FAULT_PERSISTENTCE_COUNT ) { -#ifndef DISABLE_BATT_COMM SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_BATTERY_COMM_FAULT, slaveAddr ); -#endif } } } @@ -449,9 +447,7 @@ { if ( ++commFaultPersistentCount > BATTERY_COMM_FAULT_PERSISTENTCE_COUNT ) { -#ifndef DISABLE_BATT_COMM SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_BATTERY_COMM_FAULT, dataPtr ); -#endif commFaultPersistentCount = 0; } } @@ -625,7 +621,6 @@ { // If A/C not present, trigger A/C lost alarm if ( 0 == ( BatteryStatusData.BatteryChargerStatus & BATTERY_CHARGER_STATUS_AC_PRESENT_MASK ) ) { -#ifndef DISABLE_BATT_COMM // Pre-Treatment, Treatment, or Post-Treatment mode if( opMode == MODE_PRET || opMode == MODE_TREA || opMode == MODE_POST ) { @@ -636,7 +631,6 @@ { SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_AC_POWER_LOST, BatteryStatusData.BatteryChargerStatus ); } -#endif } else { Index: firmware/App/Drivers/SafetyShutdown.c =================================================================== diff -u -ref6283257df7c1f993d58fb934da57ea3e0a7067 -r0c439ddcf7e4d3d4bf63df679eacf2f12f01255f --- firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision ef6283257df7c1f993d58fb934da57ea3e0a7067) +++ firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision 0c439ddcf7e4d3d4bf63df679eacf2f12f01255f) @@ -129,17 +129,16 @@ { case SAFETY_SHUTDOWN_SELF_TEST_STATE_START: { + F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); + safetyShutdownSelfTestState = SAFETY_SHUTDOWN_SELF_TEST_STATE_IN_PROGRESS; -#ifndef DISABLE_WD_AND_SFTY_POST_TESTS - F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); - // Verify 24V is up - if ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) - { - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED, (F32)SAFETY_POST_24V_INITIAL, v24 ) - safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; - } -#endif + // Verify 24V is up + if ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED, (F32)SAFETY_POST_24V_INITIAL, v24 ) + safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; + } safetyShutdownSelfTestTimerCount = getMSTimerCount(); activateSafetyShutdown(); } @@ -151,14 +150,12 @@ F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); F32 audioCurrent = getFPGABackupAlarmAudioCurrent(); -#ifndef DISABLE_WD_AND_SFTY_POST_TESTS // Verify 24V is down when w.d. expired if ( v24 > MAX_24V_LEVEL_ON_SAFETY_SHUTDOWN ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED, (F32)SAFETY_POST_24V_NOT_CUT, v24 ) safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; } -#endif safetyShutdownSelfTestTimerCount = getMSTimerCount(); CLR_SAFETY_SHUTDOWN(); safetyShutdownActivated = FALSE; @@ -172,15 +169,13 @@ F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); F32 audioCurrent = getFPGABackupAlarmAudioCurrent(); -#ifndef DISABLE_WD_AND_SFTY_POST_TESTS // Verify 24V is down when w.d. recovered if ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED, (F32)SAFETY_POST_NO_24V_RESTORE, v24 ) safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; } else -#endif { safetyShutdownSelfTestStatus = SELF_TEST_STATUS_PASSED; } Index: firmware/App/HDCommon.h =================================================================== diff -u -r53a25d66832105280c55adc778923ee251fe0b28 -r0c439ddcf7e4d3d4bf63df679eacf2f12f01255f --- firmware/App/HDCommon.h (.../HDCommon.h) (revision 53a25d66832105280c55adc778923ee251fe0b28) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision 0c439ddcf7e4d3d4bf63df679eacf2f12f01255f) @@ -29,21 +29,13 @@ // ********** development build switches ********** -// TODO - remove build switches before release #ifndef _RELEASE_ #ifndef _VECTORCAST_ -// Build switches. NOTE: These build switches will remain as #define -// #define USING_DEBUGGER 1 // Want to be able to use the debugger and have break points +// Build switches. NOTE: These build switches are never considered for release builds. // #define BOARD_WITH_NO_HARDWARE 1 // Target is a PCB w/ no hardware // #define RUN_WITHOUT_DG 1 // Run HD w/o DG // #define SIMULATE_UI 1 // Build w/o requirement that UI be there // #define TASK_TIMING_OUTPUT_ENABLED 1 // Re-purposes alarm lamp pins for task timing -// #define DISABLE_BATT_COMM 1 // Disable battery communication // TODO soft switch -// #define READ_FPGA_ASYNC_DATA 1 // Test build reads non-priority register page every other time -// #define DISABLE_FPGA_COUNTER_CHECKS 1 // Disable alarms associated with FPGA read/error counters -// #define EMC_TEST_BUILD 1 // EMC test build - HD/DG run separately but connected, HD pumps toggle on/off w/ stop button -// #define DISABLE_WD_AND_SFTY_POST_TESTS 1 // Disable watchdog and safety shutdown POST tests -// #define DISABLE_UI_POST_TEST 1 // Disable the UI POST #include #include Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -r46b163d19c65e8c21db7b0247bbb1af0dba1ece5 -r0c439ddcf7e4d3d4bf63df679eacf2f12f01255f --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 46b163d19c65e8c21db7b0247bbb1af0dba1ece5) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 0c439ddcf7e4d3d4bf63df679eacf2f12f01255f) @@ -507,13 +507,11 @@ { SELF_TEST_STATUS_T result = SELF_TEST_STATUS_PASSED; -#ifndef DISABLE_UI_POST_TEST if ( uiVersion.compatibility != SW_COMPATIBILITY_REV ) { result = SELF_TEST_STATUS_FAILED; SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_UI_COMPATIBILITY_ERROR, uiVersion.compatibility, SW_COMPATIBILITY_REV ) } -#endif return result; } @@ -527,7 +525,6 @@ *************************************************************************/ static SELF_TEST_STATUS_T execUITest( void ) { -#ifndef DISABLE_UI_POST_TEST SELF_TEST_STATUS_T result = SELF_TEST_STATUS_IN_PROGRESS; // UI should have sent POST results before we start this test @@ -549,9 +546,6 @@ SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_UI_POST_FAILED, 1 ) result = SELF_TEST_STATUS_FAILED; } -#else - SELF_TEST_STATUS_T result = SELF_TEST_STATUS_PASSED; -#endif return result; } Index: firmware/App/Services/FPGA.c =================================================================== diff -u -raa7b1f5f68aae23c1c52b32658fcb625c29accfb -r0c439ddcf7e4d3d4bf63df679eacf2f12f01255f --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision aa7b1f5f68aae23c1c52b32658fcb625c29accfb) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision 0c439ddcf7e4d3d4bf63df679eacf2f12f01255f) @@ -329,9 +329,6 @@ static FPGA_HEADER_T fpgaHeader; ///< Record of last received FPGA header data. static FPGA_SENSORS_T fpgaSensorReadings; ///< Record of last received FPGA priority sensor data. static FPGA_ACTUATORS_T fpgaActuatorSetPoints; ///< Record of next transmitted FPGA priority actuator data. -#ifdef READ_FPGA_ASYNC_DATA -static FPGA_SENSORS_ASYNC_T fpgaSensorReadingsAsync; ///< Record of last received async (as needed) FPGA sensor data. -#endif #ifndef DEBUG_ENABLED static U16 currentFPGATimerCount_ms; ///< Current FPGA timer count in ms. @@ -344,10 +341,6 @@ static FPGA_STATE_T handleFPGAReceiveHeaderState( void ); static FPGA_STATE_T handleFPGAWriteAllActuatorsState( void ); static FPGA_STATE_T handleFPGAReceiveAllSensorsState( void ); -#ifdef READ_FPGA_ASYNC_DATA -static FPGA_STATE_T handleFPGAReceiveAllSensorsAsyncState( void ); -static FPGA_STATE_T handleFPGAReadAllSensorsAsyncState( void ); -#endif static void resetFPGACommFlags( void ); static void setupDMAForWriteCmd( U32 bytes2Transmit ); @@ -569,12 +562,6 @@ fpgaState = handleFPGAReceiveAllSensorsState(); break; -#ifdef READ_FPGA_ASYNC_DATA - case FPGA_STATE_RCV_ALL_SENSORS_ASYNC: - fpgaState = handleFPGAReceiveAllSensorsAsyncState(); - break; -#endif - case FPGA_STATE_FAILED: // Do nothing - we will be stuck here break; @@ -633,12 +620,6 @@ // Do nothing - we will be stuck here break; -#ifdef READ_FPGA_ASYNC_DATA - case FPGA_STATE_READ_ALL_SENSORS_ASYNC: - fpgaState = handleFPGAReadAllSensorsAsyncState(); - break; -#endif - default: if ( fpgaState >= NUM_OF_FPGA_STATES ) { @@ -816,11 +797,7 @@ fpgaCommRetryCount = 0; // Capture the read values memcpy( &fpgaSensorReadings, &fpgaReadResponseBuffer[ FPGA_READ_RSP_HDR_LEN ], sizeof( FPGA_SENSORS_T ) ); -#ifndef READ_FPGA_ASYNC_DATA result = FPGA_STATE_WRITE_ALL_ACTUATORS; -#else - result = FPGA_STATE_READ_ALL_SENSORS_ASYNC; -#endif } else // Bad CRC { @@ -843,92 +820,8 @@ return result; } -#ifdef READ_FPGA_ASYNC_DATA /*********************************************************************//** * @brief - * The handleFPGAReadAllSensorsAsyncState function handles the FPGA state where - * the read async sensors command is sent to the FPGA. - * @details Inputs: none - * @details Outputs: read async sensors command sent to FPGA - * @return next FPGA state - *************************************************************************/ -static FPGA_STATE_T handleFPGAReadAllSensorsAsyncState( void ) -{ - FPGA_STATE_T result = FPGA_STATE_RCV_ALL_SENSORS_ASYNC; - U16 crc; - - // Construct read command to read low priority async registers starting at address 0x200 - fpgaReadCmdBuffer[ 0 ] = FPGA_READ_CMD_CODE; - fpgaReadCmdBuffer[ 1 ] = GET_LSB_OF_WORD( FPGA_BULK_ASYNC_READ_START_ADDR ); - fpgaReadCmdBuffer[ 2 ] = GET_MSB_OF_WORD( FPGA_BULK_ASYNC_READ_START_ADDR ); - fpgaReadCmdBuffer[ 3 ] = sizeof(FPGA_SENSORS_ASYNC_T); - crc = crc16( fpgaReadCmdBuffer, FPGA_READ_CMD_HDR_LEN ); - fpgaReadCmdBuffer[ 4 ] = GET_MSB_OF_WORD( crc ); - fpgaReadCmdBuffer[ 5 ] = GET_LSB_OF_WORD( crc ); - // Prep DMA for sending the read cmd and receiving the response - fpgaReadCommandInProgress = TRUE; - setupDMAForReadResp( FPGA_READ_RSP_HDR_LEN + sizeof(FPGA_SENSORS_ASYNC_T) + FPGA_CRC_LEN ); - setupDMAForReadCmd( FPGA_READ_CMD_HDR_LEN + FPGA_CRC_LEN ); - startDMAReceiptOfReadResp(); - startDMAReadCmd(); - - return result; -} - -/*********************************************************************//** - * @brief - * The handleFPGAReceiveAllSensorsAsyncState function handles the FPGA state - * where the bulk async read response should be ready to parse. - * @details Inputs: none - * @details Outputs: async sensor values updated - * @return next FPGA state - *************************************************************************/ -static FPGA_STATE_T handleFPGAReceiveAllSensorsAsyncState( void ) -{ - FPGA_STATE_T result = FPGA_STATE_READ_ALL_SENSORS_ASYNC; - - // If bulk read command is ACK'd, collect the readings - if ( TRUE == fpgaReadCommandResponseReceived ) - { - // Did FPGA Ack the read command? - if ( fpgaReadResponseBuffer[ 0 ] == FPGA_READ_CMD_ACK ) - { - U32 rspSize = FPGA_READ_RSP_HDR_LEN + sizeof(FPGA_SENSORS_ASYNC_T); - U32 crcPos = rspSize; - U16 crc = MAKE_WORD_OF_BYTES( fpgaReadResponseBuffer[ crcPos ], fpgaReadResponseBuffer[ crcPos + 1 ] ); - - // Does the FPGA response CRC check out? - if ( crc == crc16( fpgaReadResponseBuffer, rspSize ) ) - { - fpgaCommRetryCount = 0; - // Capture the read values - memcpy( &fpgaSensorReadingsAsync, &fpgaReadResponseBuffer[ FPGA_READ_RSP_HDR_LEN ], sizeof( FPGA_SENSORS_ASYNC_T ) ); - result = FPGA_STATE_WRITE_ALL_ACTUATORS; - } - else // Bad CRC - { - fpgaCommRetryCount++; - } - } - else // Read command was NAK'd - { - fpgaCommRetryCount++; - } - } - else // No response to read command - { - fpgaCommRetryCount++; - } - - // Should not be any data received at this time - consumeUnexpectedData(); - - return result; -} -#endif - -/*********************************************************************//** - * @brief * The execFPGATest function executes the FPGA self-test. * @details Inputs: fpgaHeader * @details Outputs: none Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -ref6283257df7c1f993d58fb934da57ea3e0a7067 -r0c439ddcf7e4d3d4bf63df679eacf2f12f01255f --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision ef6283257df7c1f993d58fb934da57ea3e0a7067) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 0c439ddcf7e4d3d4bf63df679eacf2f12f01255f) @@ -158,7 +158,6 @@ { SELF_TEST_STATUS_T result = SELF_TEST_STATUS_IN_PROGRESS; -#ifndef DISABLE_WD_AND_SFTY_POST_TESTS switch ( watchdogSelfTestState ) { case WATCHDOG_SELF_TEST_STATE_START: @@ -249,10 +248,6 @@ SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_WATCHDOG_INVALID_SELF_TEST_STATE, watchdogSelfTestState ) break; } -#else - watchdogSelfTestStatus = SELF_TEST_STATUS_PASSED; - result = watchdogSelfTestStatus; -#endif return result; }