![]() |
CMSIS-RTOS2
Version 2.1.3
Real-Time Operating System: API and RTX Reference Implementation
|
Data Structures | |
| struct | osRtxThread_t |
| Thread Control Block. More... | |
| struct | osRtxTimerFinfo_t |
| Timer Function Information. More... | |
| struct | osRtxTimer_t |
| Timer Control Block. More... | |
| struct | osRtxEventFlags_t |
| Event Flags Control Block. More... | |
| struct | osRtxMutex_t |
| Mutex Control Block. More... | |
| struct | osRtxSemaphore_t |
| Semaphore Control Block. More... | |
| struct | osRtxMpInfo_t |
| Memory Pool Information. More... | |
| struct | osRtxMemoryPool_t |
| Memory Pool Control Block. More... | |
| struct | osRtxMessage_t |
| Message Control Block. More... | |
| struct | osRtxMessageQueue_t |
| Message Queue Control Block. More... | |
| struct | osRtxObject_t |
| Generic Object Control Block. More... | |
| struct | osRtxInfo_t |
| OS Runtime Information structure. More... | |
| struct | osRtxObjectMemUsage_t |
| OS Runtime Object Memory Usage structure. More... | |
| struct | osRtxConfig_t |
| OS Configuration structure. More... | |
| struct | osRtxInfo_t.kernel |
| struct | osRtxInfo_t.thread |
| struct | osRtxInfo_t.thread.run |
| < Thread Info More... | |
| struct | osRtxInfo_t.thread.robin |
| struct | osRtxInfo_t.timer |
| struct | osRtxInfo_t.isr_queue |
| struct | osRtxInfo_t.post_process |
| struct | osRtxInfo_t.mem |
| struct | osRtxInfo_t.mpi |
| struct | osRtxConfig_t.isr_queue |
| struct | osRtxConfig_t.mem |
| struct | osRtxConfig_t.mpi |
Macros | |
| #define | osRtxVersionAPI 20010003 |
| Kernel Information. More... | |
| #define | osRtxVersionKernel 50040000 |
| Kernel version (5.4.0) More... | |
| #define | osRtxKernelId "RTX V5.4.0" |
| Kernel identification string. More... | |
| #define | osRtxIdInvalid 0x00U |
| Object Identifier definitions. More... | |
| #define | osRtxIdThread 0x01U |
| #define | osRtxIdTimer 0x02U |
| #define | osRtxIdEventFlags 0x03U |
| #define | osRtxIdMutex 0x04U |
| #define | osRtxIdSemaphore 0x05U |
| #define | osRtxIdMemoryPool 0x06U |
| #define | osRtxIdMessage 0x07U |
| #define | osRtxIdMessageQueue 0x08U |
| #define | osRtxFlagSystemObject 0x01U |
| Object Flags definitions. More... | |
| #define | osRtxFlagSystemMemory 0x02U |
| #define | osRtxKernelInactive ((uint8_t)osKernelInactive) |
| Kernel State definitions. More... | |
| #define | osRtxKernelReady ((uint8_t)osKernelReady) |
| #define | osRtxKernelRunning ((uint8_t)osKernelRunning) |
| #define | osRtxKernelLocked ((uint8_t)osKernelLocked) |
| #define | osRtxKernelSuspended ((uint8_t)osKernelSuspended) |
| #define | osRtxThreadStateMask 0x0FU |
| Thread State definitions (extending osThreadState) More... | |
| #define | osRtxThreadInactive ((uint8_t)osThreadInactive) |
| #define | osRtxThreadReady ((uint8_t)osThreadReady) |
| #define | osRtxThreadRunning ((uint8_t)osThreadRunning) |
| #define | osRtxThreadBlocked ((uint8_t)osThreadBlocked) |
| #define | osRtxThreadTerminated ((uint8_t)osThreadTerminated) |
| #define | osRtxThreadWaitingDelay ((uint8_t)(osRtxThreadBlocked | 0x10U)) |
| #define | osRtxThreadWaitingJoin ((uint8_t)(osRtxThreadBlocked | 0x20U)) |
| #define | osRtxThreadWaitingThreadFlags ((uint8_t)(osRtxThreadBlocked | 0x30U)) |
| #define | osRtxThreadWaitingEventFlags ((uint8_t)(osRtxThreadBlocked | 0x40U)) |
| #define | osRtxThreadWaitingMutex ((uint8_t)(osRtxThreadBlocked | 0x50U)) |
| #define | osRtxThreadWaitingSemaphore ((uint8_t)(osRtxThreadBlocked | 0x60U)) |
| #define | osRtxThreadWaitingMemoryPool ((uint8_t)(osRtxThreadBlocked | 0x70U)) |
| #define | osRtxThreadWaitingMessageGet ((uint8_t)(osRtxThreadBlocked | 0x80U)) |
| #define | osRtxThreadWaitingMessagePut ((uint8_t)(osRtxThreadBlocked | 0x90U)) |
| #define | osRtxThreadFlagDefStack 0x10U |
| Thread Flags definitions. More... | |
| #define | osRtxStackMagicWord 0xE25A2EA5U |
| Stack Marker definitions. More... | |
| #define | osRtxStackFillPattern 0xCCCCCCCCU |
| Stack Fill Pattern. More... | |
| #define | osRtxTimerInactive 0x00U |
| Timer State definitions. More... | |
| #define | osRtxTimerStopped 0x01U |
| Timer Stopped. More... | |
| #define | osRtxTimerRunning 0x02U |
| Timer Running. More... | |
| #define | osRtxTimerPeriodic ((uint8_t)osTimerPeriodic) |
| Timer Type definitions. More... | |
| #define | osRtxThreadFlagsLimit 31U |
| number of Thread Flags available per thread More... | |
| #define | osRtxEventFlagsLimit 31U |
| number of Event Flags available per object More... | |
| #define | osRtxMutexLockLimit 255U |
| maximum number of recursive mutex locks More... | |
| #define | osRtxSemaphoreTokenLimit 65535U |
| maximum number of tokens per semaphore More... | |
| #define | osRtxThreadCbSize sizeof(osRtxThread_t) |
| Thread Control Block size. More... | |
| #define | osRtxTimerCbSize sizeof(osRtxTimer_t) |
| Timer Control Block size. More... | |
| #define | osRtxEventFlagsCbSize sizeof(osRtxEventFlags_t) |
| Event Flags Control Block size. More... | |
| #define | osRtxMutexCbSize sizeof(osRtxMutex_t) |
| Mutex Control Block size. More... | |
| #define | osRtxSemaphoreCbSize sizeof(osRtxSemaphore_t) |
| Semaphore Control Block size. More... | |
| #define | osRtxMemoryPoolCbSize sizeof(osRtxMemoryPool_t) |
| Memory Pool Control Block size. More... | |
| #define | osRtxMessageQueueCbSize sizeof(osRtxMessageQueue_t) |
| Message Queue Control Block size. More... | |
| #define | osRtxMemoryPoolMemSize(block_count, block_size) (4*(block_count)*(((block_size)+3)/4)) |
| Memory Pool Memory size. More... | |
| #define | osRtxMessageQueueMemSize(msg_count, msg_size) (4*(msg_count)*(3+(((msg_size)+3)/4))) |
| Message Queue Memory size. More... | |
| #define | osRtxErrorStackUnderflow 1U |
| Stack overflow, i.e. stack pointer below its lower memory limit for descending stacks. More... | |
| #define | osRtxErrorISRQueueOverflow 2U |
| ISR Queue overflow detected when inserting object. More... | |
| #define | osRtxErrorTimerQueueOverflow 3U |
| User Timer Callback Queue overflow detected for timer. More... | |
| #define | osRtxErrorClibSpace 4U |
| Standard C/C++ library libspace not available. More... | |
| #define | osRtxErrorClibMutex 5U |
| Standard C/C++ library mutex initialization failed. More... | |
| #define | osRtxConfigPrivilegedMode (1UL<<0) |
| OS Trusted Firmware M Extension. More... | |
| #define | osRtxConfigStackCheck (1UL<<1) |
| Stack overrun checking. More... | |
| #define | osRtxConfigStackWatermark (1UL<<2) |
| Stack usage Watermark. More... | |
Functions | |
| uint32_t | osRtxErrorNotify (uint32_t code, void *object_id) |
| OS Error Callback function. More... | |
| void | osRtxIdleThread (void *argument) |
| OS Idle Thread. More... | |
| void | SVC_Handler (void) |
| OS Exception handlers. More... | |
| void | PendSV_Handler (void) |
| void | SysTick_Handler (void) |
Variables | |
| osRtxInfo_t | osRtxInfo |
| OS Runtime Information. More... | |
| osRtxObjectMemUsage_t | osRtxThreadMemUsage |
| OS Runtime Object Memory Usage variables. More... | |
| osRtxObjectMemUsage_t | osRtxTimerMemUsage |
| osRtxObjectMemUsage_t | osRtxEventFlagsMemUsage |
| osRtxObjectMemUsage_t | osRtxMutexMemUsage |
| osRtxObjectMemUsage_t | osRtxSemaphoreMemUsage |
| osRtxObjectMemUsage_t | osRtxMemoryPoolMemUsage |
| osRtxObjectMemUsage_t | osRtxMessageQueueMemUsage |
| const osRtxConfig_t | osRtxConfig |
| OS Configuration. More... | |
| struct osRtxThread_t |
| struct osRtxTimerFinfo_t |
| Data Fields | ||
|---|---|---|
| osTimerFunc_t | func | Function Pointer. |
| void * | arg | Function Argument. |
| struct osRtxTimer_t |
| Data Fields | ||
|---|---|---|
| uint8_t | id | Object Identifier. |
| uint8_t | state | Object State. |
| uint8_t | flags | Object Flags. |
| uint8_t | type | Timer Type (Periodic/One-shot) |
| const char * | name | Object Name. |
| struct osRtxTimer_s * | prev | Pointer to previous active Timer. |
| struct osRtxTimer_s * | next | Pointer to next active Timer. |
| uint32_t | tick | Timer current Tick. |
| uint32_t | load | Timer Load value. |
| osRtxTimerFinfo_t | finfo | Timer Function Info. |
| struct osRtxEventFlags_t |
| Data Fields | ||
|---|---|---|
| uint8_t | id | Object Identifier. |
| uint8_t | reserved_state | Object State (not used) |
| uint8_t | flags | Object Flags. |
| uint8_t | reserved | |
| const char * | name | Object Name. |
| osRtxThread_t * | thread_list | Waiting Threads List. |
| uint32_t | event_flags | Event Flags. |
| struct osRtxMutex_t |
| Data Fields | ||
|---|---|---|
| uint8_t | id | Object Identifier. |
| uint8_t | reserved_state | Object State (not used) |
| uint8_t | flags | Object Flags. |
| uint8_t | attr | Object Attributes. |
| const char * | name | Object Name. |
| osRtxThread_t * | thread_list | Waiting Threads List. |
| osRtxThread_t * | owner_thread | Owner Thread. |
| struct osRtxMutex_s * | owner_prev | Pointer to previous owned Mutex. |
| struct osRtxMutex_s * | owner_next | Pointer to next owned Mutex. |
| uint8_t | lock | Lock counter. |
| uint8_t | padding[3] | |
| struct osRtxSemaphore_t |
| Data Fields | ||
|---|---|---|
| uint8_t | id | Object Identifier. |
| uint8_t | reserved_state | Object State (not used) |
| uint8_t | flags | Object Flags. |
| uint8_t | reserved | |
| const char * | name | Object Name. |
| osRtxThread_t * | thread_list | Waiting Threads List. |
| uint16_t | tokens | Current number of tokens. |
| uint16_t | max_tokens | Maximum number of tokens. |
| struct osRtxMpInfo_t |
| struct osRtxMemoryPool_t |
| Data Fields | ||
|---|---|---|
| uint8_t | id | Object Identifier. |
| uint8_t | reserved_state | Object State (not used) |
| uint8_t | flags | Object Flags. |
| uint8_t | reserved | |
| const char * | name | Object Name. |
| osRtxThread_t * | thread_list | Waiting Threads List. |
| osRtxMpInfo_t | mp_info | Memory Pool Info. |
| struct osRtxMessage_t |
| struct osRtxMessageQueue_t |
| Data Fields | ||
|---|---|---|
| uint8_t | id | Object Identifier. |
| uint8_t | reserved_state | Object State (not used) |
| uint8_t | flags | Object Flags. |
| uint8_t | reserved | |
| const char * | name | Object Name. |
| osRtxThread_t * | thread_list | Waiting Threads List. |
| osRtxMpInfo_t | mp_info | Memory Pool Info. |
| uint32_t | msg_size | Message Size. |
| uint32_t | msg_count | Number of queued Messages. |
| osRtxMessage_t * | msg_first | Pointer to first Message. |
| osRtxMessage_t * | msg_last | Pointer to last Message. |
| struct osRtxObject_t |
| Data Fields | ||
|---|---|---|
| uint8_t | id | Object Identifier. |
| uint8_t | state | Object State. |
| uint8_t | flags | Object Flags. |
| uint8_t | reserved | |
| const char * | name | Object Name. |
| osRtxThread_t * | thread_list | Threads List. |
| struct osRtxInfo_t |
| Data Fields | ||
|---|---|---|
| const char * | os_id | OS Identification. |
| uint32_t | version | OS Version. |
| struct osRtxInfo_t | kernel | |
| int32_t | tick_irqn | Tick Timer IRQ Number. |
| struct osRtxInfo_t | thread | |
| struct osRtxInfo_t | timer | |
| struct osRtxInfo_t | isr_queue | |
| struct osRtxInfo_t | post_process | |
| struct osRtxInfo_t | mem | |
| struct osRtxInfo_t | mpi | |
| struct osRtxObjectMemUsage_t |
| struct osRtxConfig_t |
| Data Fields | ||
|---|---|---|
| uint32_t | flags | OS Configuration Flags. |
| uint32_t | tick_freq | Kernel Tick Frequency. |
| uint32_t | robin_timeout | Round Robin Timeout Tick. |
| struct osRtxConfig_t | isr_queue | |
| struct osRtxConfig_t | mem | |
| struct osRtxConfig_t | mpi | |
| uint32_t | thread_stack_size | Default Thread Stack Size. |
| const osThreadAttr_t * | idle_thread_attr | Idle Thread Attributes. |
| const osThreadAttr_t * | timer_thread_attr | Timer Thread Attributes. |
| const osMessageQueueAttr_t * | timer_mq_attr | Timer Message Queue Attributes. |
| uint32_t | timer_mq_mcnt | Timer Message Queue maximum Messages. |
| struct osRtxInfo_t.kernel |
| struct osRtxInfo_t.thread |
| Data Fields | ||
|---|---|---|
| thread | run | < Thread Info |
| osRtxObject_t | ready | Ready List Object. |
| osRtxThread_t * | idle | Idle Thread. |
| osRtxThread_t * | delay_list | Delay List. |
| osRtxThread_t * | wait_list | Wait List (no Timeout) |
| osRtxThread_t * | terminate_list | Terminate Thread List. |
| thread | robin | |
| struct osRtxInfo_t.thread.run |
| Data Fields | ||
|---|---|---|
| osRtxThread_t * | curr |
< Thread Run Info Current running Thread |
| osRtxThread_t * | next | Next Thread to Run. |
| struct osRtxInfo_t.thread.robin |
| Data Fields | ||
|---|---|---|
| osRtxThread_t * | thread |
< Thread Round Robin Info Round Robin Thread |
| uint32_t | tick | Round Robin Time Tick. |
| uint32_t | timeout | Round Robin Timeout. |
| struct osRtxInfo_t.isr_queue |
| struct osRtxInfo_t.mem |
| struct osRtxInfo_t.mpi |
| Data Fields | ||
|---|---|---|
| osRtxMpInfo_t * | stack |
< Memory Pools (Fixed Block Size) Stack for Threads |
| osRtxMpInfo_t * | thread | Thread Control Blocks. |
| osRtxMpInfo_t * | timer | Timer Control Blocks. |
| osRtxMpInfo_t * | event_flags | Event Flags Control Blocks. |
| osRtxMpInfo_t * | mutex | Mutex Control Blocks. |
| osRtxMpInfo_t * | semaphore | Semaphore Control Blocks. |
| osRtxMpInfo_t * | memory_pool | Memory Pool Control Blocks. |
| osRtxMpInfo_t * | message_queue | Message Queue Control Blocks. |
| struct osRtxConfig_t.isr_queue |
| struct osRtxConfig_t.mem |
| struct osRtxConfig_t.mpi |
| Data Fields | ||
|---|---|---|
| osRtxMpInfo_t * | stack |
< Memory Pools (Fixed Block Size) Stack for Threads |
| osRtxMpInfo_t * | thread | Thread Control Blocks. |
| osRtxMpInfo_t * | timer | Timer Control Blocks. |
| osRtxMpInfo_t * | event_flags | Event Flags Control Blocks. |
| osRtxMpInfo_t * | mutex | Mutex Control Blocks. |
| osRtxMpInfo_t * | semaphore | Semaphore Control Blocks. |
| osRtxMpInfo_t * | memory_pool | Memory Pool Control Blocks. |
| osRtxMpInfo_t * | message_queue | Message Queue Control Blocks. |
| #define osRtxVersionAPI 20010003 |
API version (2.1.3)
| #define osRtxVersionKernel 50040000 |
| #define osRtxKernelId "RTX V5.4.0" |
| #define osRtxIdInvalid 0x00U |
| #define osRtxIdThread 0x01U |
| #define osRtxIdTimer 0x02U |
| #define osRtxIdEventFlags 0x03U |
| #define osRtxIdMutex 0x04U |
| #define osRtxIdSemaphore 0x05U |
| #define osRtxIdMemoryPool 0x06U |
| #define osRtxIdMessage 0x07U |
| #define osRtxIdMessageQueue 0x08U |
| #define osRtxFlagSystemObject 0x01U |
| #define osRtxFlagSystemMemory 0x02U |
| #define osRtxKernelInactive ((uint8_t)osKernelInactive) |
| #define osRtxKernelReady ((uint8_t)osKernelReady) |
| #define osRtxKernelRunning ((uint8_t)osKernelRunning) |
| #define osRtxKernelLocked ((uint8_t)osKernelLocked) |
| #define osRtxKernelSuspended ((uint8_t)osKernelSuspended) |
| #define osRtxThreadStateMask 0x0FU |
| #define osRtxThreadInactive ((uint8_t)osThreadInactive) |
| #define osRtxThreadReady ((uint8_t)osThreadReady) |
| #define osRtxThreadRunning ((uint8_t)osThreadRunning) |
| #define osRtxThreadBlocked ((uint8_t)osThreadBlocked) |
| #define osRtxThreadTerminated ((uint8_t)osThreadTerminated) |
| #define osRtxThreadWaitingDelay ((uint8_t)(osRtxThreadBlocked | 0x10U)) |
| #define osRtxThreadWaitingJoin ((uint8_t)(osRtxThreadBlocked | 0x20U)) |
| #define osRtxThreadWaitingThreadFlags ((uint8_t)(osRtxThreadBlocked | 0x30U)) |
| #define osRtxThreadWaitingEventFlags ((uint8_t)(osRtxThreadBlocked | 0x40U)) |
| #define osRtxThreadWaitingMutex ((uint8_t)(osRtxThreadBlocked | 0x50U)) |
| #define osRtxThreadWaitingSemaphore ((uint8_t)(osRtxThreadBlocked | 0x60U)) |
| #define osRtxThreadWaitingMemoryPool ((uint8_t)(osRtxThreadBlocked | 0x70U)) |
| #define osRtxThreadWaitingMessageGet ((uint8_t)(osRtxThreadBlocked | 0x80U)) |
| #define osRtxThreadWaitingMessagePut ((uint8_t)(osRtxThreadBlocked | 0x90U)) |
| #define osRtxThreadFlagDefStack 0x10U |
Default Stack flag
| #define osRtxStackMagicWord 0xE25A2EA5U |
Stack Magic Word (Stack Base)
| #define osRtxStackFillPattern 0xCCCCCCCCU |
| #define osRtxTimerInactive 0x00U |
Timer Inactive
| #define osRtxTimerStopped 0x01U |
| #define osRtxTimerRunning 0x02U |
| #define osRtxTimerPeriodic ((uint8_t)osTimerPeriodic) |
| #define osRtxThreadFlagsLimit 31U |
| #define osRtxEventFlagsLimit 31U |
| #define osRtxMutexLockLimit 255U |
| #define osRtxSemaphoreTokenLimit 65535U |
| #define osRtxConfigPrivilegedMode (1UL<<0) |
OS Configuration flags Threads in Privileged mode
| #define osRtxConfigStackCheck (1UL<<1) |
| #define osRtxConfigStackWatermark (1UL<<2) |
| void SVC_Handler | ( | void | ) |
| void PendSV_Handler | ( | void | ) |
| void SysTick_Handler | ( | void | ) |
| osRtxInfo_t osRtxInfo |
| osRtxObjectMemUsage_t osRtxThreadMemUsage |
| osRtxObjectMemUsage_t osRtxTimerMemUsage |
| osRtxObjectMemUsage_t osRtxEventFlagsMemUsage |
| osRtxObjectMemUsage_t osRtxMutexMemUsage |
| osRtxObjectMemUsage_t osRtxSemaphoreMemUsage |
| osRtxObjectMemUsage_t osRtxMemoryPoolMemUsage |
| osRtxObjectMemUsage_t osRtxMessageQueueMemUsage |
| const osRtxConfig_t osRtxConfig |