diff --git a/os/hal/ports/STM32/LLD/RTCv1/hal_rtc_lld.c b/os/hal/ports/STM32/LLD/RTCv1/hal_rtc_lld.c index 030918c2d..502ee5b31 100644 --- a/os/hal/ports/STM32/LLD/RTCv1/hal_rtc_lld.c +++ b/os/hal/ports/STM32/LLD/RTCv1/hal_rtc_lld.c @@ -130,14 +130,15 @@ static void rtc_decode(uint32_t tv_sec, RTCDateTime *timespec) { struct tm tim; struct tm *t; + const time_t time = tv_sec; /* Copy with implicit type conversion.*/ /* If the conversion is successful the function returns a pointer to the object the result was written into.*/ #if defined(__GNUC__) || defined(__CC_ARM) - t = localtime_r((time_t *)&(tv_sec), &tim); + t = localtime_r(&time, &tim); osalDbgAssert(t != NULL, "conversion failed"); #else - t = localtime(&tv_sec); + t = localtime(&time); memcpy(&tim, t, sizeof(struct tm)); #endif diff --git a/readme.txt b/readme.txt index ae5bbe5c5..4f504905e 100644 --- a/readme.txt +++ b/readme.txt @@ -141,6 +141,8 @@ - EX: Updated LIS302DL to 1.1.0 (backported to 18.2.1). - EX: Updated LPS25H to 1.1.0 (backported to 18.2.1). - EX: Updated LSM303DLHC to 1.1.0 (backported to 18.2.1). +- HAL: Fixed problem with STM32 RTCv1 and GCC7 compiler (bug #964)(backported + to 18.2.2 and 17.6.5). - HAL: Fixed invalid timeout calculation in hal_buffers (bug #963)(backported to 18.2.2 and 17.6.5). - RT: Fixed invalid parameter in CH_CFG_SYSTEM_INIT_HOOK hook macro