提交 26391718 编写于 作者: mysterywolf's avatar mysterywolf

add RT_USING_POSIX_DELAY

上级 910961c0
...@@ -53,6 +53,10 @@ if RT_USING_POSIX ...@@ -53,6 +53,10 @@ if RT_USING_POSIX
select RT_USING_POSIX_POLL select RT_USING_POSIX_POLL
default n default n
config RT_USING_POSIX_DELAY
bool "Enable delay functions"
default n
config RT_USING_POSIX_GETLINE config RT_USING_POSIX_GETLINE
bool "Enable getline()/getdelim() APIs" bool "Enable getline()/getdelim() APIs"
default n default n
......
# RT-Thread building script for component
from building import * from building import *
Import('rtconfig')
src = ['libc.c','delay.c','unistd.c'] src = ['libc.c', 'unistd.c']
cwd = GetCurrentDir() cwd = GetCurrentDir()
CPPPATH = [cwd] CPPPATH = [cwd]
...@@ -11,6 +12,9 @@ if GetDepend('RT_USING_POSIX_POLL'): ...@@ -11,6 +12,9 @@ if GetDepend('RT_USING_POSIX_POLL'):
if GetDepend('RT_USING_POSIX_SELECT'): if GetDepend('RT_USING_POSIX_SELECT'):
src += ['select.c'] src += ['select.c']
if GetDepend('RT_USING_POSIX_DELAY'):
src += ['delay.c']
group = DefineGroup('POSIX', src, depend = ['RT_USING_POSIX'], CPPPATH = CPPPATH) group = DefineGroup('POSIX', src, depend = ['RT_USING_POSIX'], CPPPATH = CPPPATH)
Return('group') Return('group')
...@@ -48,3 +48,38 @@ void ndelay(unsigned long nsecs) ...@@ -48,3 +48,38 @@ void ndelay(unsigned long nsecs)
rt_hw_us_delay(1); rt_hw_us_delay(1);
} }
RTM_EXPORT(ndelay); RTM_EXPORT(ndelay);
unsigned int sleep(unsigned int seconds)
{
if (rt_thread_self() != RT_NULL)
{
ssleep(seconds);
}
else /* scheduler has not run yet */
{
while(seconds > 0)
{
udelay(1000000u);
seconds --;
}
}
return 0;
}
RTM_EXPORT(sleep);
int usleep(useconds_t usec)
{
if (rt_thread_self() != RT_NULL)
{
msleep(usec / 1000u);
}
else /* scheduler has not run yet */
{
udelay(usec / 1000u);
}
udelay(usec % 1000u);
return 0;
}
RTM_EXPORT(usleep);
...@@ -965,38 +965,3 @@ char *ttyname(int fd) ...@@ -965,38 +965,3 @@ char *ttyname(int fd)
return "/dev/tty"; /* TODO: need to add more specific */ return "/dev/tty"; /* TODO: need to add more specific */
} }
RTM_EXPORT(ttyname); RTM_EXPORT(ttyname);
unsigned int sleep(unsigned int seconds)
{
if (rt_thread_self() != RT_NULL)
{
ssleep(seconds);
}
else /* scheduler has not run yet */
{
while(seconds > 0)
{
udelay(1000000u);
seconds --;
}
}
return 0;
}
RTM_EXPORT(sleep);
int usleep(useconds_t usec)
{
if (rt_thread_self() != RT_NULL)
{
msleep(usec / 1000u);
}
else /* scheduler has not run yet */
{
udelay(usec / 1000u);
}
udelay(usec % 1000u);
return 0;
}
RTM_EXPORT(usleep);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册