From fb31ab9c72f1b2cb966064523fc6aa103059b222 Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Fri, 30 Jul 2021 02:03:55 +0800 Subject: [PATCH] =?UTF-8?q?[rtc]=20localtime=20=E6=94=B9=20localtime=5Fr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/drivers/rtc/rtc.c | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/components/drivers/rtc/rtc.c b/components/drivers/rtc/rtc.c index 3a843e2e0c..9e1305cdd7 100644 --- a/components/drivers/rtc/rtc.c +++ b/components/drivers/rtc/rtc.c @@ -20,8 +20,6 @@ #ifdef RT_USING_RTC - - /** * Set system date(time not modify, local timezone). * @@ -30,12 +28,10 @@ * @param rt_uint32_t day e.g: 31. * * @return rt_err_t if set success, return RT_EOK. - * */ rt_err_t set_date(rt_uint32_t year, rt_uint32_t month, rt_uint32_t day) { time_t now; - struct tm *p_tm; struct tm tm_new; rt_device_t device; rt_err_t ret = -RT_ERROR; @@ -43,14 +39,8 @@ rt_err_t set_date(rt_uint32_t year, rt_uint32_t month, rt_uint32_t day) /* get current time */ now = time(RT_NULL); - /* lock scheduler. */ - rt_enter_critical(); /* converts calendar time into local time. */ - p_tm = localtime(&now); - /* copy the statically located variable */ - rt_memcpy(&tm_new, p_tm, sizeof(struct tm)); - /* unlock scheduler. */ - rt_exit_critical(); + localtime_r(&now, &tm_new); /* update date. */ tm_new.tm_year = year - 1900; @@ -80,12 +70,10 @@ rt_err_t set_date(rt_uint32_t year, rt_uint32_t month, rt_uint32_t day) * @param rt_uint32_t second e.g: 0~59. * * @return rt_err_t if set success, return RT_EOK. - * */ rt_err_t set_time(rt_uint32_t hour, rt_uint32_t minute, rt_uint32_t second) { time_t now; - struct tm *p_tm; struct tm tm_new; rt_device_t device; rt_err_t ret = -RT_ERROR; @@ -93,14 +81,8 @@ rt_err_t set_time(rt_uint32_t hour, rt_uint32_t minute, rt_uint32_t second) /* get current time */ now = time(RT_NULL); - /* lock scheduler. */ - rt_enter_critical(); /* converts calendar time into local time. */ - p_tm = localtime(&now); - /* copy the statically located variable */ - rt_memcpy(&tm_new, p_tm, sizeof(struct tm)); - /* unlock scheduler. */ - rt_exit_critical(); + localtime_r(&now, &tm_new); /* update time. */ tm_new.tm_hour = hour; -- GitLab