学习笔记: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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学