CMSIS-RTOS2
Version 2.2.0
Real-Time Operating System: API and RTX Reference Implementation
|
RTX5 macros. More...
Macros | |
#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 osRtxThreadCbSize sizeof(osRtxThread_t) |
This macro exposes the minimum amount of memory needed for an RTX5 Thread Control Block, see osThreadAttr_t::cb_mem and osThreadAttr_t::cb_size.
Example:
#define osRtxTimerCbSize sizeof(osRtxTimer_t) |
This macro exposes the minimum amount of memory needed for an RTX5 Timer Control Block, see osTimerAttr_t::cb_mem and osTimerAttr_t::cb_size.
Example:
#define osRtxEventFlagsCbSize sizeof(osRtxEventFlags_t) |
This macro exposes the minimum amount of memory needed for an RTX5 Event Flags Control Block, see osEventFlagsAttr_t::cb_mem and osEventFlagsAttr_t::cb_size.
Example:
#define osRtxMutexCbSize sizeof(osRtxMutex_t) |
This macro exposes the minimum amount of memory needed for an RTX5 Mutex Control Block, see osMutexAttr_t::cb_mem and osMutexAttr_t::cb_size.
Example:
#define osRtxSemaphoreCbSize sizeof(osRtxSemaphore_t) |
This macro exposes the minimum amount of memory needed for an RTX5 Semaphore Control Block, see osSemaphoreAttr_t::cb_mem and osSemaphoreAttr_t::cb_size.
Example:
#define osRtxMemoryPoolCbSize sizeof(osRtxMemoryPool_t) |
This macro exposes the minimum amount of memory needed for an RTX5 Memory Pool Control Block, see osMemoryPoolAttr_t::cb_mem and osMemoryPoolAttr_t::cb_size.
Example:
#define osRtxMessageQueueCbSize sizeof(osRtxMessageQueue_t) |
This macro exposes the minimum amount of memory needed for an RTX5 Message Queue Control Block, see osMessageQueueAttr_t::cb_mem and osMessageQueueAttr_t::cb_size.
Example:
#define osRtxMemoryPoolMemSize | ( | block_count, | |
block_size | |||
) | (4*(block_count)*(((block_size)+3)/4)) |
Memory size in bytes for Memory Pool storage.
This macro exposes the minimum amount of memory needed for an RTX5 Memory Pool Memory, see osMemoryPoolAttr_t::mp_mem and osMemoryPoolAttr_t::mp_size.
Example:
block_count | maximum number of memory blocks in memory pool. |
block_size | memory block size in bytes. |
#define osRtxMessageQueueMemSize | ( | msg_count, | |
msg_size | |||
) | (4*(msg_count)*(3+(((msg_size)+3)/4))) |
Memory size in bytes for Message Queue storage.
This macro exposes the minimum amount of memory needed for an RTX5 Message Queue Memory, see osMessageQueueAttr_t::mq_mem and osMessageQueueAttr_t::mq_size.
Example:
msg_count | maximum number of messages in queue. |
msg_size | maximum message size in bytes. |
#define osRtxErrorStackUnderflow 1U |
#define osRtxErrorStackOverflow 1U |
This error identifier is used with osRtxErrorNotify when RTX5 detects a thread stack overflow. The object_id announced along this error can be used to identify the affected thread.
Stack Usage Watermark used together with larger stack sizes can help to figure out actual memory requirements for threads.
#define osRtxErrorISRQueueOverflow 2U |
This error identifier is used with osRtxErrorNotify when RTX5 detects an overflow of the interrupt post processing message queue. The object_id can be used to identify the affected object.
#define osRtxErrorTimerQueueOverflow 3U |
This error identifier is used with osRtxErrorNotify when RTX5 detects an overflow of the timer callback queue. The object_id can be used to identify the affected timer.
#define osRtxErrorClibSpace 4U |
Standard C/C++ library libspace not available: increase OS_THREAD_LIBSPACE_NUM
.
This error identifier is used with osRtxErrorNotify when RTX5 detects usage of libspace but not enough memory was reserved using OS_THREAD_LIBSPACE_NUM
.
#define osRtxErrorClibMutex 5U |
This error identifier is used with osRtxErrorNotify when RTX5 fails to create mutexes needed to lock global C/C++ library resources.
#define osRtxErrorSVC 6U |
This error identifier is used with osRtxErrorNotify when RTX5 detects SVC function pointer that is not properly aligned or is located outside of the RTX5 SVC function table.