Index: RTC.c =================================================================== diff -u -ra4f1e0aa235811f81ed9af85e65041cfcf7de02d -r59871c9964559b5137781af9c2eeed6bab18ef73 --- RTC.c (.../RTC.c) (revision a4f1e0aa235811f81ed9af85e65041cfcf7de02d) +++ RTC.c (.../RTC.c) (revision 59871c9964559b5137781af9c2eeed6bab18ef73) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2020-2023 Diality Inc. - All Rights Reserved. +* Copyright (c) 2020-2024 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file RTC.c * -* @author (last) Dara Navaei -* @date (last) 17-Jan-2023 +* @author (last) Bill Bracken +* @date (last) 19-Sep-2023 * * @author (original) Dara Navaei * @date (original) 11-Jan-2020 @@ -114,6 +114,7 @@ #define FPGA_ACCURACY_TOLERANCE 12U ///< FPGA accuracy tolerance in ms #define RTC_PUBLISH_INTERVAL 18U ///< RTC publish interval in counts (18) #define RTC_REG_ERROR_TIMEOUT_MS ( 3 * MS_PER_SECOND ) ///< RTC register error timeout in milliseconds. +#define RTC_BATTERY_LOW_TIMEOUT_MS ( 3 * MS_PER_SECOND ) ///< RTC battery low timeout in milliseconds. #define TIMER_COUNTER_TO_REQUEST_READ 18U ///< Timer counter for reading time from RTC (18) #define MAX_ALLOWED_FAILED_RTC_TRANSFERS 3U ///< Max allowed failed RTC transfers (3) @@ -279,9 +280,11 @@ #ifdef _DG_ initPersistentAlarm( ALARM_ID_DG_RTC_CONFIG_ERROR, RTC_REG_ERROR_TIMEOUT_MS, RTC_REG_ERROR_TIMEOUT_MS ); + initPersistentAlarm( ALARM_ID_DG_RTC_BATTERY_LOW, RTC_BATTERY_LOW_TIMEOUT_MS, RTC_BATTERY_LOW_TIMEOUT_MS ); #endif #ifdef _HD_ initPersistentAlarm( ALARM_ID_HD_RTC_CONFIG_ERROR, RTC_REG_ERROR_TIMEOUT_MS, RTC_REG_ERROR_TIMEOUT_MS ); + initPersistentAlarm( ALARM_ID_HD_RTC_BATTERY_LOW, RTC_BATTERY_LOW_TIMEOUT_MS, RTC_BATTERY_LOW_TIMEOUT_MS ); #endif } @@ -323,10 +326,6 @@ { isDataOk = FALSE; } - else if ( ( years - YEAR_2000 ) > MAX_ALLOWED_YEARS ) - { - isDataOk = FALSE; - } else { hasWriteToRTCRequested = TRUE; @@ -1280,7 +1279,7 @@ SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_NVDATA_RTC_RAM_OPS_FAILURE, result ) #endif #ifdef _HD_ - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_NVDATA_RTC_RAM_OPS_FAILURE, result ) + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_NVDATA_RTC_RAM_OPS_FAILURE, result ) #endif result = RTC_EXEC_STATE_IDLE; hasWriteToRAMRequested = FALSE; @@ -1356,10 +1355,10 @@ data.epochTime = lastEpochTime; #ifdef _DG_ - broadcastData( MSG_ID_DG_RTC_EPOCH, COMM_BUFFER_OUT_CAN_DG_BROADCAST, (U08*)&data, sizeof( RTC_DATA_T ) ); + broadcastData( MSG_ID_DG_RTC_EPOCH_DATA, COMM_BUFFER_OUT_CAN_DG_BROADCAST, (U08*)&data, sizeof( RTC_DATA_T ) ); #endif #ifdef _HD_ - broadcastData( MSG_ID_RTC_EPOCH, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( RTC_DATA_T ) ); + broadcastData( MSG_ID_RTC_EPOCH_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( RTC_DATA_T ) ); #endif } @@ -1518,7 +1517,6 @@ ALARM_ID_T alarm; S32 elapsedTime = (S32)calcTimeSince( RTCSelfTestTimer ); - S32 deltaTime = elapsedTime - (S32)MS_PER_SECOND; S32 elapsedFPGATime = (S32)u16DiffWithWrap( previousFPGATimerCount, getFPGATimerCount() ); result = RTC_SELF_TEST_STATE_CHECK_RTC_YEAR; @@ -1529,13 +1527,6 @@ alarm = ALARM_ID_HD_RTC_OR_TIMER_ACCURACY_FAILURE; #endif - if ( abs( deltaTime ) > RTC_ACCURACY_TOLERANCE ) - { - RTCSelfTestResult = SELF_TEST_STATUS_FAILED; - result = RTC_SELF_TEST_STATE_COMPLETE; - SET_ALARM_WITH_2_U32_DATA( alarm, (U32)deltaTime, RTC_ACCURACY_TOLERANCE ); - } - if ( abs( elapsedFPGATime - elapsedTime ) > FPGA_ACCURACY_TOLERANCE ) { RTCSelfTestResult = SELF_TEST_STATUS_FAILED; @@ -1593,7 +1584,6 @@ *************************************************************************/ static U16 getControlReg1( void ) { - return getU16OverrideValue(&rtcControlRegister1); } @@ -1606,7 +1596,6 @@ *************************************************************************/ static U16 getControlReg3( void ) { - return getU16OverrideValue(&rtcControlRegister3); }