|  | CMSIS-RTOS
    Version 1.03
    Real-Time Operating System: API and RTX Reference Implementation. | 
| Data Structures | |
| struct | osThreadDef_t | 
| Thread Definition structure contains startup information of a thread.  More... | |
| struct | osTimerDef_t | 
| Timer Definition structure contains timer parameters.  More... | |
| struct | osMutexDef_t | 
| Mutex Definition structure contains setup information for a mutex.  More... | |
| struct | osSemaphoreDef_t | 
| Semaphore Definition structure contains setup information for a semaphore.  More... | |
| struct | osPoolDef_t | 
| Definition structure for memory block allocation.  More... | |
| struct | osMessageQDef_t | 
| Definition structure for message queue.  More... | |
| struct | osMailQDef_t | 
| Definition structure for mail queue.  More... | |
| struct | osEvent | 
| Event structure contains detailed information about an event.  More... | |
| union | osEvent.value | 
| union | osEvent.def | 
| Macros | |
| #define | osCMSIS 0x10002 | 
| API version (main [31:16] .sub [15:0])  More... | |
| #define | osCMSIS_KERNEL 0x10000 | 
| RTOS identification and version (main [31:16] .sub [15:0])  More... | |
| #define | osKernelSystemId "KERNEL V1.00" | 
| RTOS identification string.  More... | |
| #define | osFeature_MainThread 1 | 
| main thread 1=main can be thread, 0=not available  More... | |
| #define | osFeature_Pool 1 | 
| Memory Pools: 1=available, 0=not available.  More... | |
| #define | osFeature_MailQ 1 | 
| Mail Queues: 1=available, 0=not available.  More... | |
| #define | osFeature_MessageQ 1 | 
| Message Queues: 1=available, 0=not available.  More... | |
| #define | osFeature_Signals 8 | 
| maximum number of Signal Flags available per thread  More... | |
| #define | osFeature_Semaphore 30 | 
| maximum count for osSemaphoreCreate function  More... | |
| #define | osFeature_Wait 1 | 
| osWait function: 1=available, 0=not available  More... | |
| #define | osFeature_SysTick 1 | 
| osKernelSysTick functions: 1=available, 0=not available  More... | |
| #define | osWaitForever 0xFFFFFFFF | 
| Timeout value.  More... | |
| #define | osKernelSysTickFrequency 100000000 | 
| The RTOS kernel system timer frequency in Hz.  More... | |
| #define | osKernelSysTickMicroSec(microsec) (((uint64_t)microsec * (osKernelSysTickFrequency)) / 1000000) | 
| Convert a microseconds value to a RTOS kernel system timer value.  More... | |
| #define | osThreadDef(name, priority, instances, stacksz) | 
| Create a Thread Definition with function, priority, and stack requirements.  More... | |
| #define | osThread(name) &os_thread_def_##name | 
| Access a Thread definition.  More... | |
| #define | osTimerDef(name, function) | 
| Define a Timer object.  More... | |
| #define | osTimer(name) &os_timer_def_##name | 
| Access a Timer definition.  More... | |
| #define | osMutexDef(name) const osMutexDef_t os_mutex_def_##name = { 0 } | 
| Define a Mutex.  More... | |
| #define | osMutex(name) &os_mutex_def_##name | 
| Access a Mutex definition.  More... | |
| #define | osSemaphoreDef(name) const osSemaphoreDef_t os_semaphore_def_##name = { 0 } | 
| Define a Semaphore object.  More... | |
| #define | osSemaphore(name) &os_semaphore_def_##name | 
| Access a Semaphore definition.  More... | |
| #define | osPoolDef(name, no, type) | 
| Define a Memory Pool.  More... | |
| #define | osPool(name) &os_pool_def_##name | 
| Access a Memory Pool definition.  More... | |
| #define | osMessageQDef(name, queue_sz, type) | 
| Create a Message Queue Definition.  More... | |
| #define | osMessageQ(name) &os_messageQ_def_##name | 
| Access a Message Queue Definition.  More... | |
| #define | osMailQDef(name, queue_sz, type) | 
| Create a Mail Queue Definition.  More... | |
| #define | osMailQ(name) &os_mailQ_def_##name | 
| Access a Mail Queue Definition.  More... | |
| Typedefs | |
| typedef void(* | os_pthread )(void const *argument) | 
| Entry point of a thread.  More... | |
| typedef void(* | os_ptimer )(void const *argument) | 
| Entry point of a timer call back function.  More... | |
| typedef struct os_thread_cb * | osThreadId | 
| Thread ID identifies the thread (pointer to a thread control block).  More... | |
| typedef struct os_timer_cb * | osTimerId | 
| Timer ID identifies the timer (pointer to a timer control block).  More... | |
| typedef struct os_mutex_cb * | osMutexId | 
| Mutex ID identifies the mutex (pointer to a mutex control block).  More... | |
| typedef struct os_semaphore_cb * | osSemaphoreId | 
| Semaphore ID identifies the semaphore (pointer to a semaphore control block).  More... | |
| typedef struct os_pool_cb * | osPoolId | 
| Pool ID identifies the memory pool (pointer to a memory pool control block).  More... | |
| typedef struct os_messageQ_cb * | osMessageQId | 
| Message ID identifies the message queue (pointer to a message queue control block).  More... | |
| typedef struct os_mailQ_cb * | osMailQId | 
| Mail ID identifies the mail queue (pointer to a mail queue control block).  More... | |
| Enumerations | |
| enum | osPriority { osPriorityIdle = -3, osPriorityLow = -2, osPriorityBelowNormal = -1, osPriorityNormal = 0, osPriorityAboveNormal = +1, osPriorityHigh = +2, osPriorityRealtime = +3, osPriorityError = 0x84 } | 
| Priority used for thread control.  More... | |
| enum | osStatus { osOK = 0, osEventSignal = 0x08, osEventMessage = 0x10, osEventMail = 0x20, osEventTimeout = 0x40, osErrorParameter = 0x80, osErrorResource = 0x81, osErrorTimeoutResource = 0xC1, osErrorISR = 0x82, osErrorISRRecursive = 0x83, osErrorPriority = 0x84, osErrorNoMemory = 0x85, osErrorValue = 0x86, osErrorOS = 0xFF, os_status_reserved = 0x7FFFFFFF } | 
| Status code values returned by CMSIS-RTOS functions.  More... | |
| enum | os_timer_type { osTimerOnce = 0, osTimerPeriodic = 1 } | 
| Timer type value for the timer definition.  More... | |
| Functions | |
| osStatus | osKernelInitialize (void) | 
| Initialize the RTOS Kernel for creating objects.  More... | |
| osStatus | osKernelStart (void) | 
| Start the RTOS Kernel.  More... | |
| int32_t | osKernelRunning (void) | 
| Check if the RTOS kernel is already started.  More... | |
| uint32_t | osKernelSysTick (void) | 
| Get the RTOS kernel system timer counter.  More... | |
| osThreadId | osThreadCreate (const osThreadDef_t *thread_def, void *argument) | 
| Create a thread and add it to Active Threads and set it to state READY.  More... | |
| osThreadId | osThreadGetId (void) | 
| Return the thread ID of the current running thread.  More... | |
| osStatus | osThreadTerminate (osThreadId thread_id) | 
| Terminate execution of a thread and remove it from Active Threads.  More... | |
| osStatus | osThreadYield (void) | 
| Pass control to next thread that is in state READY.  More... | |
| osStatus | osThreadSetPriority (osThreadId thread_id, osPriority priority) | 
| Change priority of an active thread.  More... | |
| osPriority | osThreadGetPriority (osThreadId thread_id) | 
| Get current priority of an active thread.  More... | |
| osStatus | osDelay (uint32_t millisec) | 
| Wait for Timeout (Time Delay).  More... | |
| osEvent | osWait (uint32_t millisec) | 
| Wait for Signal, Message, Mail, or Timeout.  More... | |
| osTimerId | osTimerCreate (const osTimerDef_t *timer_def, os_timer_type type, void *argument) | 
| Create a timer.  More... | |
| osStatus | osTimerStart (osTimerId timer_id, uint32_t millisec) | 
| Start or restart a timer.  More... | |
| osStatus | osTimerStop (osTimerId timer_id) | 
| Stop the timer.  More... | |
| osStatus | osTimerDelete (osTimerId timer_id) | 
| Delete a timer that was created by osTimerCreate.  More... | |
| int32_t | osSignalSet (osThreadId thread_id, int32_t signals) | 
| Set the specified Signal Flags of an active thread.  More... | |
| int32_t | osSignalClear (osThreadId thread_id, int32_t signals) | 
| Clear the specified Signal Flags of an active thread.  More... | |
| osEvent | osSignalWait (int32_t signals, uint32_t millisec) | 
| Wait for one or more Signal Flags to become signaled for the current RUNNING thread.  More... | |
| osMutexId | osMutexCreate (const osMutexDef_t *mutex_def) | 
| Create and Initialize a Mutex object.  More... | |
| osStatus | osMutexWait (osMutexId mutex_id, uint32_t millisec) | 
| Wait until a Mutex becomes available.  More... | |
| osStatus | osMutexRelease (osMutexId mutex_id) | 
| Release a Mutex that was obtained by osMutexWait.  More... | |
| osStatus | osMutexDelete (osMutexId mutex_id) | 
| Delete a Mutex that was created by osMutexCreate.  More... | |
| osSemaphoreId | osSemaphoreCreate (const osSemaphoreDef_t *semaphore_def, int32_t count) | 
| Create and Initialize a Semaphore object used for managing resources.  More... | |
| int32_t | osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec) | 
| Wait until a Semaphore token becomes available.  More... | |
| osStatus | osSemaphoreRelease (osSemaphoreId semaphore_id) | 
| Release a Semaphore token.  More... | |
| osStatus | osSemaphoreDelete (osSemaphoreId semaphore_id) | 
| Delete a Semaphore that was created by osSemaphoreCreate.  More... | |
| osPoolId | osPoolCreate (const osPoolDef_t *pool_def) | 
| Create and Initialize a memory pool.  More... | |
| void * | osPoolAlloc (osPoolId pool_id) | 
| Allocate a memory block from a memory pool.  More... | |
| void * | osPoolCAlloc (osPoolId pool_id) | 
| Allocate a memory block from a memory pool and set memory block to zero.  More... | |
| osStatus | osPoolFree (osPoolId pool_id, void *block) | 
| Return an allocated memory block back to a specific memory pool.  More... | |
| osMessageQId | osMessageCreate (const osMessageQDef_t *queue_def, osThreadId thread_id) | 
| Create and Initialize a Message Queue.  More... | |
| osStatus | osMessagePut (osMessageQId queue_id, uint32_t info, uint32_t millisec) | 
| Put a Message to a Queue.  More... | |
| osEvent | osMessageGet (osMessageQId queue_id, uint32_t millisec) | 
| Get a Message or Wait for a Message from a Queue.  More... | |
| osMailQId | osMailCreate (const osMailQDef_t *queue_def, osThreadId thread_id) | 
| Create and Initialize mail queue.  More... | |
| void * | osMailAlloc (osMailQId queue_id, uint32_t millisec) | 
| Allocate a memory block from a mail.  More... | |
| void * | osMailCAlloc (osMailQId queue_id, uint32_t millisec) | 
| Allocate a memory block from a mail and set memory block to zero.  More... | |
| osStatus | osMailPut (osMailQId queue_id, void *mail) | 
| Put a mail to a queue.  More... | |
| osEvent | osMailGet (osMailQId queue_id, uint32_t millisec) | 
| Get a mail from a queue.  More... | |
| osStatus | osMailFree (osMailQId queue_id, void *mail) | 
| Free a memory block from a mail.  More... | |
| struct osThreadDef_t | 
| Data Fields | ||
|---|---|---|
| uint32_t | instances | maximum number of instances of that thread function | 
| os_pthread | pthread | start address of thread function | 
| uint32_t | stacksize | stack size requirements in bytes; 0 is default stack size | 
| osPriority | tpriority | initial thread priority | 
| struct osTimerDef_t | 
| Data Fields | ||
|---|---|---|
| os_ptimer | ptimer | start address of a timer function | 
| struct osMutexDef_t | 
| struct osSemaphoreDef_t | 
| struct osPoolDef_t | 
| struct osMessageQDef_t | 
| struct osMailQDef_t | 
| #define osWaitForever 0xFFFFFFFF | 
| typedef void(* os_pthread)(void const *argument) | 
| typedef void(* os_ptimer)(void const *argument) | 
| typedef struct os_mailQ_cb* osMailQId | 
| typedef struct os_messageQ_cb* osMessageQId | 
| typedef struct os_mutex_cb* osMutexId | 
| typedef struct os_pool_cb* osPoolId | 
| typedef struct os_semaphore_cb* osSemaphoreId | 
| typedef struct os_thread_cb* osThreadId | 
| typedef struct os_timer_cb* osTimerId | 
| enum os_timer_type | 
| enum osStatus |