Index: RTC.c =================================================================== diff -u -r2da9d757cef985b4ad1e8adee3e19fa3430cc4fb -rf7c61d2d14b40cfbbd2fa8e0968a1f972a39e4e0 --- RTC.c (.../RTC.c) (revision 2da9d757cef985b4ad1e8adee3e19fa3430cc4fb) +++ RTC.c (.../RTC.c) (revision f7c61d2d14b40cfbbd2fa8e0968a1f972a39e4e0) @@ -259,6 +259,7 @@ BOOL setRTCTimestamp( U08 secs, U08 mins, U08 hours, U08 days, U08 months, U32 years ) { BOOL isDataOk = TRUE; + if ( secs > MAX_ALLOWED_SECONDS ) { isDataOk = FALSE; @@ -448,6 +449,7 @@ { RTC_RAM_STATUS_T status = RTCRAMStatus; U16 castedAddress = (U16)( address & MASK_OFF_MSW ); + if ( status == RTC_RAM_STATUS_IDLE ) { if ( castedAddress > MAX_ALLOWED_RTC_RAM_ADDRESS ) @@ -461,6 +463,7 @@ else { U08 i; + RTCRAMStatus = status = RTC_RAM_STATUS_IN_PROGRESS; RTCRAMState = RTC_RAM_STATE_BUSY; hasWriteToRAMRequested = TRUE; @@ -500,6 +503,7 @@ { RTC_RAM_STATUS_T status = RTCRAMStatus; U16 castedAddress = (U16)( address & MASK_OFF_MSW ); + if ( status == RTC_RAM_STATUS_IDLE ) { if ( castedAddress > MAX_ALLOWED_RTC_RAM_ADDRESS ) @@ -513,6 +517,7 @@ else { U08 i; + status = RTCRAMStatus = RTC_RAM_STATUS_IN_PROGRESS; RTCRAMState = RTC_RAM_STATE_BUSY; hasReadFromRAMRequested = TRUE;