summaryrefslogtreecommitdiff
path: root/components/drivers
diff options
context:
space:
mode:
authorMeco Man <[email protected]>2021-02-07 21:08:41 +0800
committerMeco Man <[email protected]>2021-02-07 21:08:41 +0800
commitf073911cd32bf8bfd02d6945db230e5e7b9b75ea (patch)
treedcc48ceaf009960e89defb3ce712dc7feccec4a9 /components/drivers
parent852d7d7552bd3fe898115ea16ba401970b0d1fad (diff)
解决底层驱动格林威治时间与当地时间胡乱使用的问题 mktime函数改为timegm函数
Diffstat (limited to 'components/drivers')
-rw-r--r--components/drivers/rtc/alarm.c7
-rw-r--r--components/drivers/rtc/soft_rtc.c4
2 files changed, 4 insertions, 7 deletions
diff --git a/components/drivers/rtc/alarm.c b/components/drivers/rtc/alarm.c
index ea1b150e7a..d8e4e468a7 100644
--- a/components/drivers/rtc/alarm.c
+++ b/components/drivers/rtc/alarm.c
@@ -13,10 +13,7 @@
#include <rtthread.h>
#include <rtdevice.h>
-
-#ifndef _WIN32
#include <sys/time.h>
-#endif
#define RT_RTC_YEARS_MAX 137
#ifdef RT_USING_SOFT_RTC
@@ -98,8 +95,8 @@ static void alarm_wakeup(struct rt_alarm *alarm, struct tm *now)
{
case RT_ALARM_ONESHOT:
{
- sec_alarm = mktime(&alarm->wktime);
- sec_now = mktime(now);
+ sec_alarm = timegm(&alarm->wktime);
+ sec_now = timegm(now);
if (((sec_now - sec_alarm) <= RT_ALARM_DELAY) && (sec_now >= sec_alarm))
{
/* stop alarm */
diff --git a/components/drivers/rtc/soft_rtc.c b/components/drivers/rtc/soft_rtc.c
index 6a04314675..240301f683 100644
--- a/components/drivers/rtc/soft_rtc.c
+++ b/components/drivers/rtc/soft_rtc.c
@@ -8,7 +8,7 @@
* 2018-01-30 armink the first version
*/
-#include <time.h>
+#include <sys/time.h>
#include <string.h>
#include <rtthread.h>
#include <rtdevice.h>
@@ -126,7 +126,7 @@ int rt_soft_rtc_init(void)
#endif
init_tick = rt_tick_get();
- init_time = mktime(&time_new);
+ init_time = timegm(&time_new);
soft_rtc_dev.type = RT_Device_Class_RTC;