学习笔记:IEEE 1003.13-2003(POSIX实时与嵌入式规范)

2024-05-09 00:20

本文主要是介绍学习笔记:IEEE 1003.13-2003(POSIX实时与嵌入式规范),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、文档

在线参考: IEEE 1003.13-2003

免费下载Draft 版本(pdf):IEEE Std. 1003.13

二、概念

1、POSIX标准

可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX)是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称。

目前广泛使用的 POSIX 标准是 1003.1 标准,全称为IEEE Std 1003.1(缩写写法为 POSIX.1)。

2、IEEE 1003.13

IEEE 1003.13是POSIX 针对嵌入式领域制定的标准【实时规范 (reatime profiles)】,该标准是由 IEEE Std 1003.1 筛选而来,因此是其子集。

POSIX 为了提供不同层级的RTOS能力,IEEE Std. 1003.13 定义了四个子集:

  • Minimal:最小嵌入式子集规范 —— PSE51
  • Controller:工业控制器子集规范 —— PSE52
  • Dedicated:较大规模的嵌入式系统子集规范 —— PSE53
  • Multi-Purpose:具有实时性要求的大规模通用系统子集规范 —— PSE54

3、规范划分

主要根据Module 和_POSIX_开头宏来进行细化

三、Module划分

1、Module划分表

SN

Module

PSE51

PSE52

PSE53

PSE54

1

POSIX_C_LANG_JUMP

X

X

X

X

2

POSIX_C_LANG_MATH

-

X

X

X

3

POSIX_C_LANG_SUPPORT

X

X

X

X

4

POSIX_C_LANG_WIDE_CHAR

-

-

-

X

5

POSIX_DEVICE_IO

X

X

X

X

6

POSIX_DEVICE_SPECIFIC

-

-

-

X

7

POSIX_EVENT_MGMT

-

-

X

X

8

POSIX_FD_MGMT

-

X

X

X

9

POSIX_FIFO

-

-

-

X

10

POSIX_FILE_ATTRIBUTES

-

-

-

X

11

POSIX_FILE_LOCKING

X

X

X

X

12

POSIX_FILE_SYSTEM

-

X

X

X

13

POSIX_FILE_SYSTEM_EXT

-

-

-

X

14

POSIX_JOB_CONTROL

-

-

-

X

15

POSIX_MULTI_PROCESS

-

-

X

X

16

POSIX_NETWORKING

-

-

X

X

17

POSIX_PIPE

-

-

X

X

18

POSIX_PRIORITY_RANGES

X

X

X

X

19

POSIX_REGEXP

-

-

-

X

20

POSIX_SHELL_FUNC

-

-

-

X

21

POSIX_SIGNALS

X

X

X

X

22

POSIX_SIGNAL_JUMP

-

-

X

X

23

POSIX_SINGLE_PROCESS

X

X

X

X

24

POSIX_STRING_MATCHING

-

-

-

X

25

POSIX_SYMBOLIC_LINKS

-

-

-

X

26

POSIX_SYSTEM_DATABASE

-

-

-

X

27

POSIX_THREADS_BASE

X

X

X

X

28

POSIX_USER_GROUPS

-

-

-

X

29

POSIX_WIDE_CHAR_IO

-

-

-

X

30

XSI_DYNAMIC_LINKING

-

-

-

X

31

XSI_SYSTEM_LOGGING

-

-

-

X

32

XSI_THREAD_MUTEX_EXT

X

X

X

X

33

XSI_THREADS_EXT

X

X

X

X

2、Module对应的Function表

SN

Module

Profile

Function

1

POSIX_C_LANG_JUMP

PSE51

longjmp(), setjmp()

2

POSIX_C_LANG_MATH

(249)

PSE52

acos(), acosf(), acosh(), acoshf(), acoshl(), acosl(), asin(), asinf(), asinh(), asinhf(), asinhl(), asinl(), atan(), atan2(), atan2f(), atan2l(), atanf(), atanh(), atanhf(), atanhl(), atanl(), cabs(), cabsf(), cabsl(), cacos(), cacosf(), cacosh(), cacoshf(), cacoshl(), cacosl(), carg(), cargf(), cargl(), casin(), casinf(), casinh(), casinhf(), casinhl(), casinl(), catan(), catanf(), catanh(), catanhf(), catanhl(), catanl(), cbrt(), cbrtf(), cbrtl(), ccos(), ccosf(), ccosh(), ccoshf(), ccoshl(), ccosl(), ceil(), ceilf(), ceill(), cexp(), cexpf(), cexpl(), cimag(), cimagf(), cimagl(), clog(), clogf(), clogl(), conj(), conjf(), conjl(), copysign(), copysignf(), copysignl(), cos(), cosf(), cosh(), coshf(), coshl(), cosl(), cpow(), cpowf(), cpowl(), cproj(), cprojf(), cprojl(), creal(), crealf(), creall(), csin(), csinf(), csinh(), csinhf(), csinhl(), csinl(), csqrt(), csqrtf(), csqrtl(), ctan(), ctanf(), ctanh(), ctanhf(), ctanhl(), ctanl(), erf(), erfc(), erfcf(), erfcl(), erff(), erfl(), exp(), exp2(), exp2f(), exp2l(), expf(), expl(), expm1(), expm1f(), expm1l(), fabs(), fabsf(), fabsl(), fdim(), fdimf(), fdiml(), floor(), floorf(), floorl(), fma(), fmaf(), fmal(), fmax(), fmaxf(), fmaxl(), fmin(), fminf(), fminl(), fmod(), fmodf(), fmodl(), fpclassify(), frexp(), frexpf(), frexpl(), hypot(), hypotf(), hypotl(), ilogb(), ilogbf(), ilogbl(), isfinite(), isgreater(), isgreaterequal(), isinf(), isless(), islessequal(), islessgreater(), isnan(), isnormal(), isunordered(), ldexp(), ldexpf(), ldexpl(), lgamma(), lgammaf(), lgammal(), llrint(), llrintf(), llrintl(), llround(), llroundf(), llroundl(), log(), log10(), log10f(), log10l(), log1p(), log1pf(), log1pl(), log2(), log2f(), log2l(), logb(), logbf(), logbl(), logf(), logl(), lrint(), lrintf(), lrintl(), lround(), lroundf(), lroundl(), modf(), modff(), modfl(), nan(), nanf(), nanl(), nearbyint(), nearbyintf(), nearbyintl(), nextafter(), nextafterf(), nextafterl(), nexttoward(), nexttowardf(), nexttowardl(), pow(), powf(), powl(), remainder(), remainderf(), remainderl(), remquo(), remquof(), remquol(), rint(), rintf(), rintl(), round(), roundf(), roundl(), scalbln(), scalblnf(), scalblnl(), scalbn(), scalbnf(), scalbnl(), signbit(), sin(), sinf(), sinh(), sinhf(), sinhl(), sinl(), sqrt(), sqrtf(), sqrtl(), tan(), tanf(), tanh(), tanhf(), tanhl(),tanl(), tgamma(), tgammaf(),tgammal(), trunc(), truncf(), truncl()

3

POSIX_C_LANG_SUPPORT

(105)

PSE51

abs(), asctime(), asctime_r(), atof(), atoi(), atol(), atoll(), bsearch(), calloc(), ctime(), ctime_r(), difftime(), div(), feclearexcept(), fegetenv(), fegetexceptflag(), fegetround(), feholdexcept(), feraiseexcept(), fesetenv(), fesetexceptflag(), fesetround(), fetestexcept(), feupdateenv(), free(), gmtime(), gmtime_r(), imaxabs(), imaxdiv(), isalnum(), isalpha(), isblank(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(), labs(), ldiv(), llabs(), lldiv(), localeconv(), localtime(), localtime_r(), malloc(), memchr(), memcmp(), memcpy(), memmove(), memset(), mktime(), qsort(), rand(), rand_r(), realloc(), setlocale(), snprintf(), sprintf(), srand(), sscanf(), strcat(), strchr(), strcmp(), strcoll(), strcpy(), strcspn(), strerror(), strerror_r(), strftime(), strlen(), strncat(), strncmp(), strncpy(), strpbrk(), strrchr(), strspn(), strstr(), strtod(), strtof(), strtoimax(), strtok(), strtok_r(), strtol(), strtold(), strtoll(), strtoul(), strtoull(), strtoumax(), strxfrm(), time(), tolower(), toupper(), tzname, tzset(), va_arg(), va_copy(), va_end(), va_start(), vsnprintf(), vsprintf(), vsscanf()

4

POSIX_C_LANG_WIDE_CHAR

(66)

PSE54

btowc(), iswalnum(), iswalpha(), iswblank(), iswcntrl(), iswctype(), iswdigit(), iswgraph(), iswlower(), iswprint(), iswpunct(), iswspace(), iswupper(), iswxdigit(), mblen(), mbrlen(), mbrtowc(), mbsinit(), mbsrtowcs(), mbstowcs(), mbtowc(), swprintf(), swscanf(), towctrans(), towlower(), towupper(), vswprintf(), vswscanf(), wcrtomb(), wcscat(), wcschr(), wcscmp(), wcscoll(), wcscpy(), wcscspn(), wcsftime(), wcslen(), wcsncat(), wcsncmp(), wcsncpy(), wcspbrk(), wcsrchr(), wcsrtombs(), wcsspn(), wcsstr(), wcstod(), wcstof(), wcstoimax(), wcstok(), wcstol(), wcstold(), wcstoll(), wcstombs(), wcstoul(), wcstoull(), wcstoumax(), wcsxfrm(), wctob(), wctomb(), wctrans(), wctype(), wmemchr(), wmemcmp(), wmemcpy(), wmemmove(), wmemset()

5

POSIX_DEVICE_IO

(40)

PSE51

clearerr(), close(), fclose(), fdopen(), feof (), ferror(), fflush (), fgetc(), fgets(), fileno(), fopen(), fprintf(), fputc(), fputs(), fread(), freopen(), fscanf(), fwrite(), getc(), getchar(), gets(), open(), perror(), printf(), putc(), putchar(), puts(), read(), scanf(), setbuf(), setvbuf(), stderr(), stdin(), stdout(), ungetc(), vfprintf (), vfscanf(), vprintf(), vscanf(), write()

6

POSIX_DEVICE_SPECIFIC

(14)

PSE54

cfgetispeed(), cfgetospeed(), cfsetispeed(), cfsetospeed(), ctermid(), isatty(), tcdrain(), tcflow(), tcflush(), tcgetattr(), tcsendbreak(), tcsetattr(), ttyname(), ttyname_r()

7

POSIX_EVENT_MGMT

PSE53

FD_CLR(), FD_ISSET(), FD_SET(), FD_ZERO(), pselect(), select()

8

POSIX_FD_MGMT

PSE52

dup(), dup2(), fcntl(), fgetpos(), fseek(), fseeko(), fsetpos(), ftell(), ftello(), ftruncate(), lseek(), rewind()

9

POSIX_FIFO

PSE54

mkfifo()

10

POSIX_FILE_ATTRIBUTES

PSE54

chmod(), chown(), fchmod(), fchown(), umask()

11

POSIX_FILE_LOCKING

PSE51

flockfile(), ftrylockfile(), funlockfile(), getc_unlocked(), getchar_unlocked(), putc_unlocked(), putchar_unlocked()

12

POSIX_FILE_SYSTEM

PSE52

access(), chdir(), closedir(), creat(), fpathconf(), fstat(), getcwd(), link(), mkdir(), opendir(), pathconf(), readdir(), readdir_r(), remove(), rename(), rewinddir(), rmdir(), stat(), tmpfile(), tmpnam(), unlink(), utime()

13

POSIX_FILE_SYSTEM_EXT

PSE54

glob(), globfree()

14

POSIX_JOB_CONTROL

PSE54

setpgid(), tcgetpgrp(), tcsetpgrp()

15

POSIX_MULTI_PROCESS

PSE53

_Exit(), _exit(), assert(), atexit(), clock(), execl(), execle(), execlp(), execv(), execve(), execvp(), exit(), fork(), getpgrp(), getpid(), getppid(), setsid(), sleep(), times(), wait(), waitpid()

16

POSIX_NETWORKING

PSE53

accept(), bind(), connect(), endhostent(), endnetent(), endprotoent(), endservent(), freeaddrinfo(), gai_strerror(), getaddrinfo(), gethostbyaddr(), gethostbyname(), gethostent(), gethostname(), getnameinfo(), getnetbyaddr(), getnetbyname(), getnetent(), getpeername(), getprotobyname(), getprotobynumber(), getprotoent(), getservbyname(), getservbyport(), getservent(), getsockname(), getsockopt(), htonl(), htons(), if_freenameindex(), if_indextoname(), if_nameindex(), if_nametoindex(), inet_addr(), inet_ntoa(), inet_ntop(), inet_pton(), listen(), ntohl(), ntohs(), recv(), recvfrom(), recvmsg(), send(), sendmsg(), sendto(), sethostent(), setnetent(), setprotoent(), setservent(), setsockopt(), shutdown(), socket(), sockatmark(), socketpair()

17

POSIX_PIPE

PSE53

pipe()

18

POSIX_PRIORITY_RANGES

PSE51

sched_get_priority_max(), sched_get_priority_min(), sched_rr_get_interval()

19

POSIX_REGEXP

PSE54

regcomp(), regerror(), regexec(), regfree()

20

POSIX_SHELL_FUNC

PSE54

pclose(), popen(), system(), wordexp(), wordfree()

21

POSIX_SIGNALS

PSE51

abort(), alarm(), kill(), pause(), raise(), sigaction(), sigaddset(), sigdelset(), sigemptyset(), sigfillset(), sigismember(), signal(), sigpending(), sigprocmask(), sigsuspend(), sigwait()

22

POSIX_SIGNAL_JUMP

PSE53

siglongjmp(), sigsetjmp()

23

POSIX_SINGLE_PROCESS

PSE51

confstr(), getenv(), setenv(), sysconf(), uname(), unsetenv()

24

POSIX_STRING_MATCHING

PSE54

fnmatch(), getopt()

25

POSIX_SYMBOLIC_LINKS

PSE54

lstat(), readlink(), symlink()

26

POSIX_SYSTEM_DATABASE

PSE54

getgrgid(), getgrgid_r(), getgrnam(), getgrnam_r(), getpwnam(), getpwnam_r(), getpwuid(), getpwuid_r()

27

POSIX_THREADS_BASE

PSE51

pthread_atfork(), pthread_attr_destroy(), pthread_attr_getdetachstate(), pthread_attr_getschedparam(), pthread_attr_init(), pthread_attr_setdetachstate(), pthread_attr_setschedparam(), pthread_cancel(), pthread_cleanup_pop(), pthread_cleanup_push(), pthread_cond_broadcast(), pthread_cond_destroy(), pthread_cond_init(), pthread_cond_signal(), pthread_cond_timedwait(), pthread_cond_wait(), pthread_condattr_destroy(), pthread_condattr_init(), pthread_create(), pthread_detach(), pthread_equal(), pthread_exit(), pthread_getspecific(), pthread_join(), pthread_key_create(), pthread_key_delete(), pthread_kill(), pthread_mutex_destroy(), pthread_mutex_init(), pthread_mutex_lock(), pthread_mutex_trylock(), pthread_mutex_unlock(), pthread_mutexattr_destroy(), pthread_mutexattr_init(), pthread_once(), pthread_self(), pthread_setcalcelstate(), pthread_setcanceltype(), pthread_setspecific(), pthread_sigmask(), pthread_testcancel()

28

POSIX_USER_GROUPS

PSE54

getegid(), geteuid(), getgid(), getgroups(), getlogin(), getlogin_r(), getuid(), setegid(), seteuid, setgid(), setuid()

29

POSIX_WIDE_CHAR_IO

PSE54

fgetwc(), fgetws(), fputwc(), fputws(), fwide(), fwprintf(), fwscanf(), getwc(), getwchar(), putwc(), putwchar(), ungetwc(), vfwprintf(), vfwscanf(), vwprintf(), vwscanf(), wprintf(), wscanf()

30

XSI_DYNAMIC_LINKING

PSE54

dlclose(), dlerror(), dlopen(), dlsym()

31

XSI_SYSTEM_LOGGING

PSE54

closelog(), openlog(), setlogmask(), syslog()

32

XSI_THREAD_MUTEX_EXT

PSE51

pthread_mutexattr_gettype(), pthread_mutexattr_settype()

33

XSI_THREADS_EXT

PSE51

pthread_attr_getguardsize(), pthread_attr_getstack(), pthread_attr_setguardsize(), pthread_attr_setstack(), pthread_getconcurrency(), pthread_setconcurrency()

四、_POSIX_开头宏划分

1、_POSIX_开头宏划分表

SN

_POSIX_宏

PSE51

PSE52

PSE53

PSE54

1

_POSIX_ADVISORY_INFO

-

-

-

X

2

_POSIX_ASYNCHRONOUS_IO

-

-

X

X

3

_POSIX_CLOCK_SELECTION

X

X

X

X

4

_POSIX_CPUTIME

-

-

X

X

5

_POSIX_FSYNC

X

X

X

X

6

_POSIX_MAPPED_FILES

-

X

X

X

7

_POSIX_MEMLOCK

X

X

X

X

8

_POSIX_MEMLOCK_RANGE

X

X

X

X

9

_POSIX_MEMORY_PROTECTION

-

-

X

X

10

_POSIX_MESSAGE_PASSING

-

X

X

X

11

_POSIX_PRIORITY_SCHEDULING

-

-

X

X

12

_POSIX_REALTIME_SIGNALS

X

X

X

X

13

_POSIX_SEMAPHORES

X

X

X

X

14

_POSIX_SHARED_MEMORY_OBJECTS

X

X

X

X

15

_POSIX_SPAWN

-

-

X

X

16

_POSIX_SYNCHRONIZED_IO

X

X

X

X

17

_POSIX_THREAD_ATTR_STACKADDR

X

X

X

X

18

_POSIX_THREAD_ATTR_STACKSIZE

X

X

X

X

19

_POSIX_THREAD_CPUTIME

X

X

X

X

20

_POSIX_THREAD_PRIO_INHERIT

X

X

X

X

21

_POSIX_THREAD_PRIO_PROTECT

X

X

X

X

22

_POSIX_THREAD_PRIORITY_SCHEDULING

X

X

X

X

23

_POSIX_THREAD_PROCESS_SHARED

-

-

X

X

24

_POSIX_TIMEOUTS

X

X

X

X

25

_POSIX_TIMERS

X

X

X

X

26

_POSIX_TRACE

-

X

X

X

27

_POSIX_TRACE_EVENT_FILTER

-

X

X

X

28

_POSIX_TRACE_LOG

-

X

X

X

2、_POSIX_开头宏应的Function表

SN

_POSIX_

Profile

Function

备注

1

_POSIX_ADVISORY_INFO

PSE54

posix_fadvise(), posix_fallocate(), posix_memalign()

 

2

_POSIX_

ADVISORY_INFO

and either

_POSIX_MAPPED_FILES

or

_POSIX_SHARED_

MEMORY_OBJECTS

PSE54

posix_madvise()

_POSIX_ADVISORY_INFO(PSE54)

_POSIX_MAPPED_FILES(PSE52)

_POSIX_SHARED_MEMORY

_OBJECTS(PSE51)

3

_POSIX

_ASYNCHRONOUS_IO

PSE53

aio_cancel(),aio_error(),aio_fsync(),

aio_read(),aio_return(), aio_suspend(), aio_write(), lio_listio()

 

4

_POSIX_

CLOCK_SELECTION

PSE51

clock_nanosleep()

 

5

_POSIX_

CLOCK_SELECTION

and

_POSIX_THREADS

PSE51

pthread_condattr_getclock(), pthread_condattr_setclock()

_POSIX_THREADS同 = POSIX_THREADS_BASE(支持)

+

_POSIX_READER_WRITER_LOCKS

(不支持)

6

_POSIX_CPUTIME

PSE53

clock_getcpuclokid()

 

7

_POSIX_FSYNC

PSE51

fsync()

 

8

_POSIX_MAPPED_FILES

and _POSIX_

SYNCHRONIZED_IO

PSE52

msync()

_POSIX_MAPPED_FILES(PSE52)

_POSIX_SYNCHRONIZED_IO(PSE51)

9

_POSIX_MEMLOCK

PSE51

mlockall(), munlockall()

 

10

_POSIX_

MEMLOCK_RANGE

PSE51

mlock(), munlock()

 

11

_POSIX_MEMORY

_PROTECTION

PSE53

mprotect()

 

12

_POSIX_

MESSAGE_PASSING

PSE52

mq_close(), mq_getattr(), mq_notify(), mq_open(), mq_receive(), mq_send(), mq_setattr(), mq_unlink()

 

13

_POSIX_

MESSAGE_PASSING

and

_POSIX_TIMEOUTS

PSE52

mq_timedreceive(), mq_timedsend()

_POSIX_MESSAGE_PASSING(PSE52)

_POSIX_TIMEOUTS(PSE51)

14

_POSIX_PRIORITY

_SCHEDULING

PSE53

sched_get_priority_max(), sched_get_priority_min(), sched_getparam(),

sched_getscheduler(), sched_rr_get_interval(),

sched_setparam(),

sched_setscheduler(),

sched_yield()

_POSIX_THREAD_PRIORITY

_SCHEDULING

and

_POSIX_THREADS里面也包含(PSE51)

下面3个sched_get_priority_max(),

sched_get_priority_min(),

sched_rr_get_interval()

15

_POSIX_REALTIME

_SIGNALS

PSE51

sigqueue(), sigtimedwait(),

sigwaitinfo()

 

16

_POSIX_SEMAPHORES

PSE51

sem_close(), sem_destroy(),

sem_getvalue(), sem_init(),

sem_open(), sem_post(),

sem_trywait(),

sem_wait(), sem_unlink()

 

17

_POSIX_SEMAPHORES

and

_POSIX_TIMEOUTS

PSE51

sem_timedwait()

_POSIX_SEMAPHORES(PSE51)

_POSIX_TIMEOUTS(PSE51)

18

_POSIX_SHARED_

MEMORY_OBJECTS

PSE51

shm_open(), shm_unlink()

 

19

_POSIX_SHARED_

MEMORY_OBJECTS

or

_POSIX_MAPPED_FILES

PSE51

mmap(), munmap()

_POSIX_SHARED_MEMORY

_OBJECTS(PSE51)

_POSIX_MAPPED_FILES(PSE52)

20

_POSIX_SPAWN

PSE53

posix_spawn(),

posix_spawn_file

_actions_addclose(), posix_spawn_file

_actions_adddup2(), posix_spawn_file

_actions_addopen(), posix_spawn_file

_actions_destroy(), posix_spawn_file_actions_init(), posix_spawnattr_destroy(),

posix_spawnattr_getflags(),

posix_spawnattr_getpgroup(), posix_spawnattr_getsigdefault(), posix_spawnattr_getsigmask(),

posix_spawnattr_init(),

posix_spawnattr_setflags(),

posix_spawnattr_setpgroup(), posix_spawnattr_setsigdefault(), posix_spawnattr_setsigmask(),

posix_spawnp()

 

21

_POSIX_SPAWN

and

_POSIX_PRIORITY

_SCHEDULING

PSE53

posix_spawnattr_getschedparam(), posix_spawnattr_setschedparam(), posix_spawnattr_getschedpolicy(), posix_spawnattr_setschedpolicy()

_POSIX_PRIORITY_SCHEDULING (PSE53)

_POSIX_SPAWN(PSE53)

22

_POSIX_

SYNCHRONIZED_IO

PSE51

fdatasync()

 

23

_POSIX_THREAD_

ATTR_STACKADDR

and _POSIX_THREADS

PSE51

pthread_attr_getstackaddr(),

pthread_attr_setstackaddr()

_POSIX_THREAD_ATTR_

STACKADDR(PSE51)

24

_POSIX_THREAD_

ATTR_STACKADDR, _POSIX_THREADS

and

_POSIX_THREAD_

ATTR_STACKSIZE

PSE51

pthread_attr_getstack(),

pthread_attr_setstack()

_POSIX_THREAD_ATTR

_STACKADDR(PSE51)_POSIX_THREAD_ATTR

_STACKSIZE(PSE51)

【XSI_THREADS_EXT中也有pthread_attr_getstack(), pthread_attr_setstack()】

25

_POSIX_THREAD_

ATTR_STACKSIZE

and

_POSIX_THREADS

PSE51

pthread_attr_getstacksize(),

pthread_attr_setstacksize()

_POSIX_THREAD_ATTR_STACKSIZE(PSE51)

26

_POSIX_

THREAD_CPUTIME

and

_POSIX_THREADS

PSE51

pthread_getcpuclockid()

_POSIX_THREAD_CPUTIME(PSE51)

27

_POSIX_THREAD

_PRIO_INHERIT

and

_POSIX_THREADS

PSE51

pthread_mutexattr_getprotocol(), pthread_mutexattr_setprotocol()

_POSIX_THREAD_PRIO_INHERIT(PSE51)

【这两个函数同_POSIX_THREAD_PRIO_PROTECT

and _POSIX_THREADS】

28

_POSIX_THREAD_

PRIO_PROTECT

and

_POSIX_THREADS

PSE51

pthread_mutex_getprioceiling(), pthread_mutex_setprioceiling(), pthread_mutexattr_getprioceiling(), pthread_mutexattr_getprotocol(), pthread_mutexattr_setprioceiling(), pthread_mutexattr_setprotocol()

_POSIX_THREAD_PRIO_PROTECT(PSE51)

【_POSIX_THREAD_PRIO_INHERIT and _POSIX_THREADS里面也有pthread_mutexattr_getprotocol(), pthread_mutexattr_setprotocol()】

29

_POSIX_THREAD

_PRIORITY_SCHEDULING

and

_POSIX_THREADS

PSE51

pthread_attr_getinheritsched(), pthread_attr_getschedpolicy(),

pthread_attr_getscope(),

pthread_attr_setinheritsched(), pthread_attr_setschedpolicy(),

pthread_attr_setscope(),

pthread_getschedparam(),

pthread_setschedparam(),

pthread_setschedprio(),

sched_get_priority_max(),

sched_get_priority_min(),

sched_rr_get_interval()

_POSIX_THREAD_PRIORITY

_SCHEDULING(PSE51)

【_POSIX_PRIORITY_

SCHEDULING里面也包含(PSE53)

下面3个sched_get_priority_max(), sched_get_priority_min(), sched_rr_get_interval()】

30

_POSIX_THREAD

_PROCESS_SHARED

and

_POSIX_THREADS

PSE53

pthread_condattr_getpshared(), pthread_condattr_setpshared(), pthread_mutexattr_getpshared(), pthread_mutexattr_setpshared(), pthread_rwlockattr_getpshared(), pthread_rwlockattr_setpshared()

_POSIX_THREAD_

PROCESS_SHARED(PSE51)

_POSIX_THREADS = POSIX_THREADS_BASE(支持)+ _POSIX_READER_WRITER_LOCKS(不支持)

【pthread_rwlock*不支持】

31

_POSIX_TIMEOUTS

and

_POSIX_THREADS

PSE51

pthread_mutex_timedlock(),

pthread_rwlock_timedrdlock(), pthread_rwlock_timedwrlock()

_POSIX_TIMEOUTS(PSE51)

_POSIX_THREADS = POSIX_THREADS_BASE(支持)+ _POSIX_READER_WRITER_LOCKS(不支持)

【pthread_rwlock*不支持】

32

_POSIX_TIMEOUTS

and

_POSIX_TRACE

PSE52

posix_trace_timedgetnext_event()

_POSIX_TIMEOUTS(PSE51)

_POSIX_TRACE(PSE52)

33

_POSIX_TIMERS

PSE51

clock_getres(), clock_gettime(),

clock_settime(), nanosleep(),

timer_create(), timer_detele(),

timer_getoverrun(), timer_gettime(),

timer_settime()

 

34

_POSIX_TRACE

PSE52

posix_trace_attr_destroy(),

posix_trace_attr_getclockres(), posix_trace_attr_getcreatetime(), posix_trace_attr_getgenversion(), posix_trace_attr_getname(), posix_trace_attr

_getstreamfullpolicy(), posix_trace_attr_getmaxdatasize(), posix_trace_attr

_getmaxsystemeventsize(), posix_trace_attr

_getmaxusereventsize(), posix_trace_attr_getstreamsize(),

posix_trace_attr_init(),

posix_trace_attr_setname(), posix_trace_attr

_setstreamfullpolicy(), posix_trace_attr_setmaxdatasize(), posix_trace_attr_setstreamsize(),

posix_trace_clear(), posix_trace_create(), posix_trace_event(),

posix_trace_eventid_open(),

posix_trace_eventid_equal(), posix_trace_eventid_get_name(), posix_trace_eventtypelist

_getnext_id(), posix_trace_eventtypelist_rewind(),

posix_trace_get_attr(),

posix_trace_get_status(),

posix_trace_getnext_event(),

posix_trace_shutdown(),

posix_trace_start(),

posix_trace_stop(), posix_trace_trygetnext_event()

 

35

_POSIX_TRACE

and

_POSIX_TRACE_LOG

PSE52

posix_trace_attr_getlogfullpolicy(), posix_trace_attr_getlogsize(), posix_trace_attr_setlogfullpolicy(), posix_trace_attr_setlogsize(), posix_trace_close(), posix_trace_open(), posix_trace_rewind(), posix_trace_create_withlog(), posix_trace_flush()

_POSIX_TRACE(PSE52)

_POSIX_TRACE_LOG(PSE52)

36

_POSIX_TRACE

and

_POSIX_TRACE

_EVENT_FILTER

PSE52

posix_trace_eventset_add(),

posix_trace_eventset_del(), posix_trace_eventset_empty(),

posix_trace_eventset_fill(), posix_trace_eventset_ismember(),

posix_trace_get_filter(), posix_trace_set_filter(), posix_trace_trid_eventid_open()

_POSIX_TRAC(PSE52)

_POSIX_TRACE_EVENT_FILTER(PSE52)

五、参考

参考: POSIX标准及RT-Thread实现情况

这篇关于学习笔记:IEEE 1003.13-2003(POSIX实时与嵌入式规范)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/971856

相关文章

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间