CMSIS-RTOS2
Version 2.2.0
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 20020000 |
Kernel Information. More... | |
#define | osRtxVersionKernel 50070000 |
Kernel version (5.7.0) More... | |
#define | osRtxKernelId "RTX V5.7.0" |
Kernel identification string. More... | |
#define | osRtxIdInvalid 0x00U |
Object Identifier definitions. More... | |
#define | osRtxIdThread 0xF1U |
#define | osRtxIdTimer 0xF2U |
#define | osRtxIdEventFlags 0xF3U |
#define | osRtxIdMutex 0xF5U |
#define | osRtxIdSemaphore 0xF6U |
#define | osRtxIdMemoryPool 0xF7U |
#define | osRtxIdMessage 0xF9U |
#define | osRtxIdMessageQueue 0xFAU |
#define | osRtxFlagSystemObject 0x01U |
Object Flags definitions. More... | |
#define | osRtxFlagSystemMemory 0x02U |
#define | osRtxAttrClass_Pos 4U |
Object Attribute Class definitions. More... | |
#define | osRtxAttrClass_Msk 0xF0U |
#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 | osRtxKernelProtectPrivileged 0x01U |
Kernel Protect definitions. More... | |
#define | osRtxKernelProtectClass_Pos 4U |
#define | osRtxKernelProtectClass_Msk 0xF0U |
#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 0x01U |
Timer attribute 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 |
#define | osRtxErrorStackOverflow 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 | osRtxErrorSVC 6U |
Invalid SVC function called. More... | |
#define | osRtxConfigPrivilegedMode (1UL<<0) |
OS Configuration flags. More... | |
#define | osRtxConfigStackCheck (1UL<<1) |
Stack overrun checking. More... | |
#define | osRtxConfigStackWatermark (1UL<<2) |
Stack usage Watermark. More... | |
#define | osRtxConfigSafetyFeatures (1UL<<3) |
Safety features enabled. More... | |
#define | osRtxConfigSafetyClass (1UL<<4) |
Safety Class feature enabled. More... | |
#define | osRtxConfigExecutionZone (1UL<<5) |
Execution Zone enabled. More... | |
#define | osRtxConfigThreadWatchdog (1UL<<6) |
Thread Watchdog enabled. More... | |
#define | osRtxConfigObjPtrCheck (1UL<<7) |
Object Pointer Checking enabled. More... | |
#define | osRtxConfigSVCPtrCheck (1UL<<8) |
SVC Pointer Checking enabled. More... | |
Functions | |
uint32_t | osRtxErrorNotify (uint32_t code, void *object_id) |
OS Error Callback function. More... | |
uint32_t | osRtxKernelErrorNotify (uint32_t code, void *object_id) |
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 | attr | Object Attributes. |
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 | attr | Object Attributes. |
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 | attr | Object Attributes. |
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 | attr | Object Attributes. |
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 | attr | Object Attributes. |
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 | attr | Object Attributes. |
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 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. |
osRtxThread_t * | wdog_list | Watchdog 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 | 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 20020000 |
API version (2.2.0)
#define osRtxVersionKernel 50070000 |
#define osRtxKernelId "RTX V5.7.0" |
#define osRtxIdInvalid 0x00U |
#define osRtxIdThread 0xF1U |
#define osRtxIdTimer 0xF2U |
#define osRtxIdEventFlags 0xF3U |
#define osRtxIdMutex 0xF5U |
#define osRtxIdSemaphore 0xF6U |
#define osRtxIdMemoryPool 0xF7U |
#define osRtxIdMessage 0xF9U |
#define osRtxIdMessageQueue 0xFAU |
#define osRtxFlagSystemObject 0x01U |
#define osRtxFlagSystemMemory 0x02U |
#define osRtxAttrClass_Pos 4U |
#define osRtxAttrClass_Msk 0xF0U |
#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 osRtxKernelProtectPrivileged 0x01U |
#define osRtxKernelProtectClass_Pos 4U |
#define osRtxKernelProtectClass_Msk 0xF0U |
#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 0x01U |
Timer Periodic mode
#define osRtxThreadFlagsLimit 31U |
#define osRtxEventFlagsLimit 31U |
#define osRtxMutexLockLimit 255U |
#define osRtxSemaphoreTokenLimit 65535U |
#define osRtxConfigPrivilegedMode (1UL<<0) |
Threads in Privileged mode
#define osRtxConfigStackCheck (1UL<<1) |
#define osRtxConfigStackWatermark (1UL<<2) |
#define osRtxConfigSafetyFeatures (1UL<<3) |
#define osRtxConfigSafetyClass (1UL<<4) |
#define osRtxConfigExecutionZone (1UL<<5) |
#define osRtxConfigThreadWatchdog (1UL<<6) |
#define osRtxConfigObjPtrCheck (1UL<<7) |
#define osRtxConfigSVCPtrCheck (1UL<<8) |
uint32_t osRtxKernelErrorNotify | ( | uint32_t | code, |
void * | object_id | ||
) |
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 |