Merge pull request #4314 from mysterywolf/mktime1

[bug][localtime]解决底层驱动格林威治时间与当地时间混乱使用的问题
This commit is contained in:
Bernard Xiong
2021-02-15 09:26:52 +08:00
committed by GitHub
24 changed files with 119 additions and 101 deletions
+18 -18
View File
@@ -12,7 +12,7 @@
*/
#include <rtthread.h>
#include <time.h>
#include <sys/time.h>
#include <s3c24x0.h>
// #define RTC_DEBUG
@@ -125,27 +125,27 @@ static rt_size_t rtc_read(rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t
static rt_err_t rtc_control(rt_device_t dev, int cmd, void *args)
{
struct tm tm, *tm_ptr;
struct tm tm, *tm_ptr;
time_t *time;
RT_ASSERT(dev != RT_NULL);
RT_ASSERT(dev != RT_NULL);
time = (time_t *)args;
switch (cmd)
{
case RT_DEVICE_CTRL_RTC_GET_TIME:
/* read device */
rt_hw_rtc_get(&tm);
*((rt_time_t *)args) = mktime(&tm);
break;
time = (time_t *)args;
switch (cmd)
{
case RT_DEVICE_CTRL_RTC_GET_TIME:
/* read device */
rt_hw_rtc_get(&tm);
*((rt_time_t *)args) = timegm(&tm);
break;
case RT_DEVICE_CTRL_RTC_SET_TIME:
tm_ptr = localtime(time);
/* write device */
rt_hw_rtc_set(tm_ptr);
break;
}
case RT_DEVICE_CTRL_RTC_SET_TIME:
/* write device */
tm_ptr = gmtime(time);
rt_hw_rtc_set(tm_ptr);
break;
}
return RT_EOK;
return RT_EOK;
}
void rt_hw_rtc_init(void)