Index: RTC.c =================================================================== diff -u -r66600859e4fb3036f48901aae8c9845f37e3e707 -r33643a3ab1bcec2cd9b71e2977cb7c40750229c0 --- RTC.c (.../RTC.c) (revision 66600859e4fb3036f48901aae8c9845f37e3e707) +++ RTC.c (.../RTC.c) (revision 33643a3ab1bcec2cd9b71e2977cb7c40750229c0) @@ -711,7 +711,14 @@ *************************************************************************/ static BOOL isRTCFunctional( void ) { + ALARM_ID_T alarm; + BOOL hasTestPassed = TRUE; + +#ifdef _DG_ + alarm = ALARM_ID_DG_RTC_CONFIG_ERROR; +#endif + #ifndef DISABLE_RTC_CONFIG U16 controlReg1 = rxBuffer[ RTC_REG_1_INDEX ]; U16 controlReg2 = rxBuffer[ RTC_REG_2_INDEX ]; @@ -730,32 +737,34 @@ if ( controlReg1 & RTC_REG_1_12_HOUR_MODE_MASK ) { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RTC_CONFIG_ERROR, controlReg1, RTC_REG_1_12_HOUR_MODE_MASK ); + SET_ALARM_WITH_2_U32_DATA( alarm, controlReg1, RTC_REG_1_12_HOUR_MODE_MASK ); hasTestPassed = FALSE; } if ( controlReg1 & RTC_REG_1_PORO ) { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RTC_CONFIG_ERROR, controlReg1, RTC_REG_1_PORO ); + SET_ALARM_WITH_2_U32_DATA( alarm, controlReg1, RTC_REG_1_PORO ); hasTestPassed = FALSE; } if ( controlReg1 & RTC_REG_1_CLK_STOPPED_MASK ) { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RTC_CONFIG_ERROR, controlReg1, RTC_REG_1_CLK_STOPPED_MASK ); + SET_ALARM_WITH_2_U32_DATA( alarm, controlReg1, RTC_REG_1_CLK_STOPPED_MASK ); hasTestPassed = FALSE; } if ( controlReg1 & RTC_REG_1_UNUSED_MASK ) { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RTC_CONFIG_ERROR, controlReg1, RTC_REG_1_UNUSED_MASK ); + SET_ALARM_WITH_2_U32_DATA( alarm, controlReg1, RTC_REG_1_UNUSED_MASK ); hasTestPassed = FALSE; } if ( controlReg1 & RTC_REG_1_EXT_CLK_MODE_MASK ) { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RTC_CONFIG_ERROR, controlReg1, RTC_REG_1_EXT_CLK_MODE_MASK ); + SET_ALARM_WITH_2_U32_DATA( alarm, controlReg1, RTC_REG_1_EXT_CLK_MODE_MASK ); hasTestPassed = FALSE; } if ( controlReg3 & RTC_REG_3_BLF_MASK ) { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RTC_BATTERY_LOW, controlReg3, RTC_REG_3_BLF_MASK ); +#ifdef _DG_ + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_RTC_BATTERY_LOW, controlReg3, RTC_REG_3_BLF_MASK ); +#endif hasTestPassed = FALSE; } #endif @@ -1236,7 +1245,7 @@ if ( RTCServiceState == RTC_SERVICE_COMPLETE && isStatusOk ) { - if ( isRTCFunctional() ) + if ( TRUE == isRTCFunctional() ) { RTC_DATA_T data; @@ -1276,8 +1285,10 @@ static RTC_SELF_TEST_STATE_T handleSelfTestStart( void ) { RTC_SELF_TEST_STATE_T result = RTC_SELF_TEST_STATE_START; - RTCSelfTestResult = SELF_TEST_STATUS_IN_PROGRESS; + RTCSelfTestResult = SELF_TEST_STATUS_IN_PROGRESS; + prepBufferForReadCommand( RTC_GENERAL_BUFFER_LENGTH ); + result = RTC_SELF_TEST_STATE_CHECK_CTRL_REGS; return result; @@ -1335,7 +1346,7 @@ static RTC_SELF_TEST_STATE_T handleSelfTestWaitForFirstSecond( void ) { RTC_SELF_TEST_STATE_T result = RTC_SELF_TEST_STATE_WAIT_FOR_FIRST_SECOND; - BOOL isStatusOk = serviceRTC( txBuffer, rxBuffer, RTC_GENERAL_BUFFER_LENGTH ); + BOOL isStatusOk = serviceRTC( txBuffer, rxBuffer, RTC_GENERAL_BUFFER_LENGTH ); if ( ( RTC_SERVICE_COMPLETE == RTCServiceState ) && ( TRUE == isStatusOk ) ) { @@ -1345,22 +1356,22 @@ if ( RTCCurrentSecond != RTCPreviousSecond ) { - RTCPreviousSecond = RTCCurrentSecond; + RTCPreviousSecond = RTCCurrentSecond; previousFPGATimerCount = getFPGATimerCount(); - RTCSelfTestTimer = getMSTimerCount(); - result = RTC_SELF_TEST_STATE_CHECK_ACCURACY; + RTCSelfTestTimer = getMSTimerCount(); + result = RTC_SELF_TEST_STATE_CHECK_ACCURACY; } } else { RTCSelfTestResult = SELF_TEST_STATUS_FAILED; - result = RTC_SELF_TEST_STATE_COMPLETE; + result = RTC_SELF_TEST_STATE_COMPLETE; } } else if ( RTCServiceState == RTC_SERVICE_COMPLETE ) { RTCSelfTestResult = SELF_TEST_STATUS_FAILED; - result = RTC_SELF_TEST_STATE_COMPLETE; + result = RTC_SELF_TEST_STATE_COMPLETE; } return result; @@ -1393,13 +1404,17 @@ if ( abs( deltaTime ) > RTC_ACCURACY_TOLERANCE ) { RTCSelfTestResult = SELF_TEST_STATUS_FAILED; - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RTC_OR_TIMER_ACCURACY_FAILURE, (U32)deltaTime, RTC_ACCURACY_TOLERANCE ); +#ifdef _DG_ + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_RTC_OR_TIMER_ACCURACY_FAILURE, (U32)deltaTime, RTC_ACCURACY_TOLERANCE ); +#endif } if ( abs( elapsedFPGATime - elapsedTime ) > FPGA_ACCURACY_TOLERANCE ) { RTCSelfTestResult = SELF_TEST_STATUS_FAILED; - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RTC_OR_TIMER_ACCURACY_FAILURE, (U32)elapsedFPGATime, (U32)elapsedTime ); +#ifdef _DG_ + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_RTC_OR_TIMER_ACCURACY_FAILURE, (U32)elapsedFPGATime, (U32)elapsedTime ); +#endif } }