[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

View File

@ -272,7 +272,11 @@ uint32_t SysTimeToMs( SysTime_t sysTime )
DeltaTime.Seconds = UTIL_SYSTIMDriver.BKUPRead_Seconds(); DeltaTime.Seconds = UTIL_SYSTIMDriver.BKUPRead_Seconds();
SysTime_t calendarTime = SysTimeSub( sysTime, DeltaTime ); 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 ) SysTime_t SysTimeFromMs( uint32_t timeMs )