diff options
Diffstat (limited to 'components')
| -rw-r--r-- | components/libc/newlib/libc.c | 29 | ||||
| -rw-r--r-- | components/libc/newlib/libc.h | 1 |
2 files changed, 30 insertions, 0 deletions
diff --git a/components/libc/newlib/libc.c b/components/libc/newlib/libc.c index 477ee44504..90b0b7f2ee 100644 --- a/components/libc/newlib/libc.c +++ b/components/libc/newlib/libc.c @@ -2,6 +2,27 @@ #include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
+#include <sys/time.h>
+
+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 b21a7264b3..60a86e49a6 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
|
