OS-Ucos/Rtems/Vxworks/Linux,这几种OS都接触过,几乎都是一些应用层面得,下面是他们的基本函数接口对比
|
任务
|
|
uCos
|
INT8U OSTaskCreate (
void (*task)(void *pd), void *pdata,
OS_STK *ptos,
INT8U prio)
|
栈,
优先级(0~63)
只支持SCHED_FIFO
|
Rtems
|
Int rtems_task_create(
rtems_name name,
rtems_task_priority initial_priority,
rtems_unsigned32 stack_size,
rtems_mode initial_modes,
rtems_attribute attribute_set,
rtems_id *id
)
Int rtems_task_start(
task_id,
(rtems_task_entry)entrypt,
(rtems_task_argument)parent_id)
|
栈,
优先级,
SCHED_RR/
SCHED_FIFO/
SCHED_OTHER
任务NAME
任务ID
|
VxWorks
|
int taskSpawn(
char *name, int pri, int opts,
int stksize, int (*funcptr),
void *pdata)
|
栈,
优先级,
SCHED_RR/
SCHED_FIFO/
SCHED_OTHER
任务NAME
|
Linux
|
int pthread_create(pthread_t *thread,
const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg)
|
栈,
优先级,
SCHED_RR/
SCHED_FIFO/
SCHED_OTHER
是否绑定、是否分离
|
|