add RT_USING_POSIX_DELAY
This commit is contained in:
parent
910961c091
commit
2639171885
@ -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
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
from building import *
|
# RT-Thread building script for component
|
||||||
Import('rtconfig')
|
|
||||||
|
|
||||||
src = ['libc.c','delay.c','unistd.c']
|
from building import *
|
||||||
|
|
||||||
|
src = ['libc.c', 'unistd.c']
|
||||||
cwd = GetCurrentDir()
|
cwd = GetCurrentDir()
|
||||||
CPPPATH = [cwd]
|
CPPPATH = [cwd]
|
||||||
|
|
||||||
@ -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)
|
|||||||
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)
|
|||||||
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);
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user