diff --git a/components/libc/newlib/libc.c b/components/libc/newlib/libc.c index 73270969b84748432198150a85f5045d19bfcbb8..0427a6d91b193dad6f08245357818a7d6982942e 100644 --- a/components/libc/newlib/libc.c +++ b/components/libc/newlib/libc.c @@ -18,32 +18,38 @@ #endif -void libc_system_init(const char* tty_name) +int libc_system_init(void) { #ifdef RT_USING_DFS - int fd; + int fd; + struct rt_device *console_dev; #ifndef RT_USING_DFS_DEVFS #error Please enable devfs by defining RT_USING_DFS_DEVFS in rtconfig.h #endif - /* initialize console device */ - rt_console_init(tty_name); + console_dev = rt_console_get_device(); + if (console_dev) + { + /* initialize console device */ + rt_console_init(console_dev->parent.name); - /* open console as stdin/stdout/stderr */ - fd = open("/dev/console", O_RDONLY, 0); /* for stdin */ - fd = open("/dev/console", O_WRONLY, 0); /* for stdout */ - fd = open("/dev/console", O_WRONLY, 0); /* for stderr */ - - /* skip warning */ - fd = fd; + /* open console as stdin/stdout/stderr */ + fd = open("/dev/console", O_RDONLY, 0); /* for stdin */ + fd = open("/dev/console", O_WRONLY, 0); /* for stdout */ + fd = open("/dev/console", O_WRONLY, 0); /* for stderr */ + + /* skip warning */ + fd = fd; + } #endif - /* set PATH and HOME */ - putenv("PATH=/"); - putenv("HOME=/"); + /* set PATH and HOME */ + putenv("PATH=/bin"); + putenv("HOME=/home"); #ifdef RT_USING_PTHREADS - pthread_system_init(); + pthread_system_init(); #endif } +INIT_COMPONENT_EXPORT(libc_system_init); diff --git a/components/libc/newlib/libc.h b/components/libc/newlib/libc.h index 52fddd94929935be736e3ed19377ead926111ccc..a4f342df33d33253e39b2d77b3496696b16ca85c 100644 --- a/components/libc/newlib/libc.h +++ b/components/libc/newlib/libc.h @@ -3,15 +3,15 @@ #include -#define MILLISECOND_PER_SECOND 1000UL -#define MICROSECOND_PER_SECOND 1000000UL -#define NANOSECOND_PER_SECOND 1000000000UL +#define MILLISECOND_PER_SECOND 1000UL +#define MICROSECOND_PER_SECOND 1000000UL +#define NANOSECOND_PER_SECOND 1000000000UL -#define MILLISECOND_PER_TICK (MILLISECOND_PER_SECOND / RT_TICK_PER_SECOND) -#define MICROSECOND_PER_TICK (MICROSECOND_PER_SECOND / RT_TICK_PER_SECOND) -#define NANOSECOND_PER_TICK (NANOSECOND_PER_SECOND / RT_TICK_PER_SECOND) +#define MILLISECOND_PER_TICK (MILLISECOND_PER_SECOND / RT_TICK_PER_SECOND) +#define MICROSECOND_PER_TICK (MICROSECOND_PER_SECOND / RT_TICK_PER_SECOND) +#define NANOSECOND_PER_TICK (NANOSECOND_PER_SECOND / RT_TICK_PER_SECOND) -void libc_system_init(const char* tty_name); +int libc_system_init(void); /* some time related function */ int libc_set_time(const struct timespec *time);