64bit time_t issue in RTCv1 section

Report here problems in any of ChibiOS components. This forum is NOT for support.
Posts: 1
Joined: Wed Dec 08, 2010 11:56 am

64bit time_t issue in RTCv1 section

Postby ibrauns » Tue Aug 07, 2018 8:17 pm


just switching my toolchain host from Win10 to Debian i had an issue with HAL 6.0.1 and STM32F103 mcu. I used the actual toolchain GNU MCU Eclipse ARM Embedded GCC which surprised me with 64-bit time_t type.

The function call localtime_r failed.

I solved that with a small patch in hal_rtc_ldd.c.

Maybe there exists a better solution?



Code: Select all

static void rtc_decode(uint32_t tv_sec,
                       uint32_t tv_msec,
                       RTCDateTime *timespec) {
  struct tm tim;
  struct tm *t;
  time_t tv64b;                                             /* XXX patched ibrauns 07082018*/

  /* If the conversion is successful the function returns a pointer
     to the object the result was written into.*/
#if defined(__GNUC__) || defined(__CC_ARM)
  tv64b = tv_sec;                                          /* XXX patched ibrauns 07082018*/             
  t = localtime_r((time_t *)&(tv64b), &tim);               /* XXX patched ibrauns 07082018   
  t = localtime_r((time_t *)&(tv_sec), &tim);               */
  osalDbgAssert(t != NULL, "conversion failed");
  t = localtime(&tv_sec);
  memcpy(&tim, t, sizeof(struct tm));

  rtcConvertStructTmToDateTime(&tim, tv_msec, timespec);

User avatar
Site Admin
Posts: 11648
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 488 times
Been thanked: 409 times

Re: 64bit time_t issue in RTCv1 section

Postby Giovanni » Mon Dec 31, 2018 11:06 am

Moving to bug reports.


Last bumped by Giovanni on Mon Dec 31, 2018 11:06 am.

Return to “Bug Reports”

Who is online

Users browsing this forum: No registered users and 2 guests