[SYSTIME] Prevents SysTimeToMs computations that may cause miscalculations when calendarTime is too large

This commit is contained in:
huangly 2024-05-10 16:12:29 +08:00
parent dc557f6d2c
commit dbf23bb3b3
1 changed files with 5 additions and 1 deletions
Utilities/misc

View File

@ -272,7 +272,11 @@ uint32_t SysTimeToMs( SysTime_t sysTime )
DeltaTime.Seconds = UTIL_SYSTIMDriver.BKUPRead_Seconds();
SysTime_t calendarTime = SysTimeSub( sysTime, DeltaTime );
return calendarTime.Seconds * 1000 + calendarTime.SubSeconds;
int64_t calendar_second = calendarTime.Seconds;
int64_t calendar_subsecond = calendarTime.SubSeconds;
int64_t calendar_time = calendar_second * 1000 + calendar_subsecond;
calendar_time = calendar_time % 4194304000;
return calendar_time;
}
SysTime_t SysTimeFromMs( uint32_t timeMs )