diff --git a/components/libc/newlib/libc.c b/components/libc/newlib/libc.c index 477ee4450410e91340ebcd2763c168b8291f6a32..90b0b7f2ee027bcfb57d469bd169be9564ea9359 100644 --- a/components/libc/newlib/libc.c +++ b/components/libc/newlib/libc.c @@ -2,6 +2,27 @@ #include #include #include +#include + +struct timeval _timevalue; +static void libc_system_time_init() +{ + rt_device_t device; + time_t time; + rt_tick_t tick; + + time = 0; tick = 0; + device = rt_device_find("rtc"); + if (device != RT_NULL) + { + rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time); + } + + tick = rt_tick_get(); + + _timevalue.tv_sec = time; + _timevalue.tv_usec = (1000000UL * tick)/RT_TICK_PER_SECOND; +} void libc_system_init(const char* tty_name) { @@ -20,3 +41,11 @@ void libc_system_init(const char* tty_name) putenv("HOME=/"); } +int libc_time_to_tick(const struct timespec *time) +{ + int tick; + + tick = RT_WAITING_FOREVER; + + return tick; +} diff --git a/components/libc/newlib/libc.h b/components/libc/newlib/libc.h index b21a7264b385cc465b3dd8b192cd04fe05adbabb..60a86e49a6d7ac268e55337a0e1bb6080a7d0ee3 100644 --- a/components/libc/newlib/libc.h +++ b/components/libc/newlib/libc.h @@ -2,5 +2,6 @@ #define __RTT_LIBC_H__ void libc_system_init(const char* tty_name); +int libc_time_to_tick(const struct timespec *time); #endif