CMSIS2000  0.0.7
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cmsis_os.h File Reference
#include <stdint.h>
#include <stddef.h>
Include dependency graph for cmsis_os.h:

Go to the source code of this file.

Data Structures

struct  os_mailQ_def
 Definition structure for mail queue. More...
struct  os_messageQ_def
 Definition structure for message queue. More...
struct  os_mutex_def
 Mutex Definition structure contains setup information for a mutex. More...
struct  os_pool_def
 Definition structure for memory block allocation. More...
struct  os_semaphore_def
 Semaphore Definition structure contains setup information for a semaphore. More...
struct  os_thread_def
 Thread Definition structure contains startup information of a thread. More...
struct  os_timer_def
 Timer Definition structure contains timer parameters. More...
struct  osEvent
 Event structure contains detailed information about an event. More...

Macros

#define osCMSIS   0x00003
 API version (main [31:16] .sub [15:0])
#define osCMSIS_KERNEL   0x10000
 RTOS identification and version (main [31:16] .sub [15:0])
#define osFeature_MailQ   1
 Mail Queues: 1=available, 0=not available.
#define osFeature_MainThread   1
 main thread 1=main can be thread, 0=not available
#define osFeature_MessageQ   1
 Message Queues: 1=available, 0=not available.
#define osFeature_Pool   1
 Memory Pools: 1=available, 0=not available.
#define osFeature_Semaphore   30
 maximum count for SemaphoreInit function
#define osFeature_Signals   8
 maximum number of Signal Flags available per thread
#define osFeature_Wait   1
 osWait function: 1=available, 0=not available
#define osKernelSystemId   "KERNEL V1.00"
 RTOS identification string.
#define osMailQ(name)   &os_mailQ_def_##name
 Access a Mail Queue Definition.
#define osMailQDef(name, queue_sz, type)
 Create a Mail Queue Definition.
#define osMessageQ(name)   &os_messageQ_def_##name
 Access a Message Queue Definition.
#define osMessageQDef(name, queue_sz, type)
 Create a Message Queue Definition.
#define osMutex(name)   &os_mutex_def_##name
 Access a Mutex defintion.
#define osMutexDef(name)   osMutexDef_t os_mutex_def_##name = { 0 }
 Define a Mutex.
#define osPool(name)   &os_pool_def_##name
 Access a Memory Pool definition.
#define osPoolDef(name, no, type)
 Define a Memory Pool.
#define osSemaphore(name)   &os_semaphore_def_##name
 Access a Semaphore definition.
#define osSemaphoreDef(name)   osSemaphoreDef_t os_semaphore_def_##name = { 0 }
 Define a Semaphore object.
#define osThread(name)   &os_thread_def_##name
 Access a Thread defintion.
#define osThreadDef(name, priority, instances, stacksz)
 Create a Thread Definition with function, priority, and stack requirements.
#define osTimer(name)   &os_timer_def_##name
 Access a Timer definition.
#define osTimerDef(name, function)
 Define a Timer object.
#define osWaitForever   0xFFFFFFFF
 Timeout value.

Typedefs

typedef void(* os_pthread )(void const *argument)
 Entry point of a thread.
typedef void(* os_ptimer )(void const *argument)
 Entry point of a timer call back function.
typedef struct os_mailQ_def osMailQDef_t
 Definition structure for mail queue.
typedef struct os_mailQ_cb * osMailQId
 Mail ID identifies the mail queue (pointer to a mail queue control block).
typedef struct os_messageQ_def osMessageQDef_t
 Definition structure for message queue.
typedef struct os_messageQ_cb * osMessageQId
 Message ID identifies the message queue (pointer to a message queue control block).
typedef struct os_mutex_def osMutexDef_t
 Mutex Definition structure contains setup information for a mutex.
typedef struct os_mutex_cb * osMutexId
 Mutex ID identifies the mutex (pointer to a mutex control block).
typedef struct os_pool_def osPoolDef_t
 Definition structure for memory block allocation.
typedef struct os_pool_cb * osPoolId
 Pool ID identifies the memory pool (pointer to a memory pool control block).
typedef struct os_semaphore_def osSemaphoreDef_t
 Semaphore Definition structure contains setup information for a semaphore.
typedef struct os_semaphore_cb * osSemaphoreId
 Semaphore ID identifies the semaphore (pointer to a semaphore control block).
typedef struct os_thread_def osThreadDef_t
 Thread Definition structure contains startup information of a thread.
typedef struct os_thread_cb * osThreadId
 Thread ID identifies the thread (pointer to a thread control block).
typedef struct os_timer_def osTimerDef_t
 Timer Definition structure contains timer parameters.
typedef struct os_timer_cb * osTimerId
 Timer ID identifies the timer (pointer to a timer control block).

Enumerations

enum  os_timer_type { osTimerOnce = 0, osTimerPeriodic = 1 }
 Timer type value for the timer definition. More...
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...

Functions

osStatus osDelay (uint32_t millisec)
 Wait for Timeout (Time Delay)
int32_t osKernelRunning (void)
 Check if the RTOS kernel is already started.
osStatus osKernelStart (osThreadDef_t *thread_def, void *argument)
 Start the RTOS Kernel with executing the specified thread.
void * osMailAlloc (osMailQId queue_id, uint32_t millisec)
 Allocate a memory block from a mail.
void * osMailCAlloc (osMailQId queue_id, uint32_t millisec)
 Allocate a memory block from a mail and set memory block to zero.
osMailQId osMailCreate (osMailQDef_t *queue_def, osThreadId thread_id)
 Create and Initialize mail queue.
osStatus osMailFree (osMailQId queue_id, void *mail)
 Free a memory block from a mail.
osEvent osMailGet (osMailQId queue_id, uint32_t millisec)
 Get a mail from a queue.
osStatus osMailPut (osMailQId queue_id, void *mail)
 Put a mail to a queue.
osMessageQId osMessageCreate (osMessageQDef_t *queue_def, osThreadId thread_id)
 Create and Initialize a Message Queue.
osEvent osMessageGet (osMessageQId queue_id, uint32_t millisec)
 Get a Message or Wait for a Message from a Queue.
osStatus osMessagePut (osMessageQId queue_id, uint32_t info, uint32_t millisec)
 Put a Message to a Queue.
osMutexId osMutexCreate (osMutexDef_t *mutex_def)
 Create and Initialize a Mutex object.
osStatus osMutexRelease (osMutexId mutex_id)
 Release a Mutex that was obtained by osMutexWait.
osStatus osMutexWait (osMutexId mutex_id, uint32_t millisec)
 Wait until a Mutex becomes available.
void * osPoolAlloc (osPoolId pool_id)
 Allocate a memory block from a memory pool.
void * osPoolCAlloc (osPoolId pool_id)
 Allocate a memory block from a memory pool and set memory block to zero.
osPoolId osPoolCreate (osPoolDef_t *pool_def)
 Create and Initialize a memory pool.
osStatus osPoolFree (osPoolId pool_id, void *block)
 Return an allocated memory block back to a specific memory pool.
osSemaphoreId osSemaphoreCreate (osSemaphoreDef_t *semaphore_def, int32_t count)
 Create and Initialize a Semaphore object used for managing resources.
osStatus osSemaphoreRelease (osSemaphoreId semaphore_id)
 Release a Semaphore token.
int32_t osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec)
 Wait until a Semaphore token becomes available.
int32_t osSignalClear (osThreadId thread_id, int32_t signal)
 Clear the specified Signal Flags of an active thread.
int32_t osSignalGet (osThreadId thread_id)
 Get Signal Flags status of an active thread.
int32_t osSignalSet (osThreadId thread_id, int32_t signal)
 Set the specified Signal Flags of an active thread.
osEvent osSignalWait (int32_t signals, uint32_t millisec)
 Wait for one or more Signal Flags to become signaled for the current RUNNING thread.
osThreadId osThreadCreate (osThreadDef_t *thread_def, void *argument)
 Create a thread and add it to Active Threads and set it to state READY.
osThreadId osThreadGetId (void)
 Return the thread ID of the current running thread.
osPriority osThreadGetPriority (osThreadId thread_id)
 Get current priority of an active thread.
osStatus osThreadSetPriority (osThreadId thread_id, osPriority priority)
 Change priority of an active thread.
osStatus osThreadTerminate (osThreadId thread_id)
 Terminate execution of a thread and remove it from Active Threads.
osStatus osThreadYield (void)
 Pass control to next thread that is in state READY.
osTimerId osTimerCreate (osTimerDef_t *timer_def, os_timer_type type, void *argument)
 Create a timer.
osStatus osTimerStart (osTimerId timer_id, uint32_t millisec)
 Start or restart a timer.
osStatus osTimerStop (osTimerId timer_id)
 Stop the timer.
osEvent osWait (uint32_t millisec)
 Wait for Signal, Message, Mail, or Timeout.

Macro Definition Documentation

#define osCMSIS   0x00003

API version (main [31:16] .sub [15:0])

Note
MUST REMAIN UNCHANGED: osCMSIS identifies the CMSIS-RTOS API version

Definition at line 100 of file cmsis_os.h.

#define osCMSIS_KERNEL   0x10000

RTOS identification and version (main [31:16] .sub [15:0])

Note
CAN BE CHANGED: osCMSIS_KERNEL identifies the underlaying RTOS kernel and version number.

Definition at line 103 of file cmsis_os.h.

#define osFeature_MailQ   1

Mail Queues: 1=available, 0=not available.

Definition at line 111 of file cmsis_os.h.

#define osFeature_MainThread   1

main thread 1=main can be thread, 0=not available

Note
MUST REMAIN UNCHANGED: osFeature_xxx shall be consistent in every CMSIS-RTOS.

Definition at line 109 of file cmsis_os.h.

#define osFeature_MessageQ   1

Message Queues: 1=available, 0=not available.

Definition at line 112 of file cmsis_os.h.

#define osFeature_Pool   1

Memory Pools: 1=available, 0=not available.

Definition at line 110 of file cmsis_os.h.

#define osFeature_Semaphore   30

maximum count for SemaphoreInit function

Definition at line 114 of file cmsis_os.h.

#define osFeature_Signals   8

maximum number of Signal Flags available per thread

Definition at line 113 of file cmsis_os.h.

#define osFeature_Wait   1

osWait function: 1=available, 0=not available

Definition at line 115 of file cmsis_os.h.

#define osKernelSystemId   "KERNEL V1.00"

RTOS identification string.

Note
MUST REMAIN UNCHANGED: osKernelSystemId shall be consistent in every CMSIS-RTOS.

Definition at line 106 of file cmsis_os.h.

#define osMailQ (   name)    &os_mailQ_def_##name

Access a Mail Queue Definition.

Parameters
namename of the queue
Note
CAN BE CHANGED: The parameter to osMailQ shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 665 of file cmsis_os.h.

#define osMailQDef (   name,
  queue_sz,
  type 
)
Value:
osMailQDef_t os_mailQ_def_##name = \
{ (queue_sz), sizeof (type) }

Create a Mail Queue Definition.

Parameters
namename of the queue
queue_szmaximum number of messages in queue
typedata type of a single message element
Note
CAN BE CHANGED: The parameter to osMailQDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 656 of file cmsis_os.h.

#define osMessageQ (   name)    &os_messageQ_def_##name

Access a Message Queue Definition.

Parameters
namename of the queue
Note
CAN BE CHANGED: The parameter to osMessageQ shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 614 of file cmsis_os.h.

#define osMessageQDef (   name,
  queue_sz,
  type 
)
Value:
osMessageQDef_t os_messageQ_def_##name = \
{ (queue_sz), sizeof (type) }

Create a Message Queue Definition.

Parameters
namename of the queue.
queue_szmaximum number of messages in the queue.
typedata type of a single message element (for debugger).
Note
CAN BE CHANGED: The parameter to osMessageQDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 605 of file cmsis_os.h.

#define osMutex (   name)    &os_mutex_def_##name

Access a Mutex defintion.

Parameters
namename of the mutex object.
Note
CAN BE CHANGED: The parameter to osMutex shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 469 of file cmsis_os.h.

#define osMutexDef (   name)    osMutexDef_t os_mutex_def_##name = { 0 }

Define a Mutex.

Parameters
namename of the mutex object.
Note
CAN BE CHANGED: The parameter to osMutexDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 461 of file cmsis_os.h.

#define osPool (   name)    &os_pool_def_##name

Access a Memory Pool definition.

Parameters
namename of the memory pool
Note
CAN BE CHANGED: The parameter to osPool shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 560 of file cmsis_os.h.

#define osPoolDef (   name,
  no,
  type 
)
Value:
osPoolDef_t os_pool_def_##name = \
{ (no), sizeof(type), NULL }

Define a Memory Pool.

Parameters
namename of the memory pool.
nomaximum number of objects (elements) in the memory pool.
typedata type of a single object (element).
Note
CAN BE CHANGED: The parameter to osPoolDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 551 of file cmsis_os.h.

#define osSemaphore (   name)    &os_semaphore_def_##name

Access a Semaphore definition.

Parameters
namename of the semaphore object.
Note
CAN BE CHANGED: The parameter to osSemaphore shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 512 of file cmsis_os.h.

#define osSemaphoreDef (   name)    osSemaphoreDef_t os_semaphore_def_##name = { 0 }

Define a Semaphore object.

Parameters
namename of the semaphore object.
Note
CAN BE CHANGED: The parameter to osSemaphoreDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 504 of file cmsis_os.h.

#define osThread (   name)    &os_thread_def_##name

Access a Thread defintion.

Parameters
namename of the thread definition object.
Note
CAN BE CHANGED: The parameter to osThread shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 317 of file cmsis_os.h.

#define osThreadDef (   name,
  priority,
  instances,
  stacksz 
)
Value:
osThreadDef_t os_thread_def_##name = \
{ (name), (priority), (instances), (stacksz) }

Create a Thread Definition with function, priority, and stack requirements.

Parameters
namename of the thread function.
priorityinitial priority of the thread function.
instancesnumber of possible thread instances.
stackszstack size (in bytes) requirements for the thread function.
Note
CAN BE CHANGED: The parameters to osThreadDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 308 of file cmsis_os.h.

#define osTimer (   name)    &os_timer_def_##name

Access a Timer definition.

Parameters
namename of the timer object.
Note
CAN BE CHANGED: The parameter to osTimer shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 396 of file cmsis_os.h.

#define osTimerDef (   name,
  function 
)
Value:
osTimerDef_t os_timer_def_##name = \
{ (function) }

Define a Timer object.

Parameters
namename of the timer object.
functionname of the timer call back function.
Note
CAN BE CHANGED: The parameter to osTimerDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.

Definition at line 387 of file cmsis_os.h.

#define osWaitForever   0xFFFFFFFF

Timeout value.

Note
MUST REMAIN UNCHANGED: osWaitForever shall be consistent in every CMSIS-RTOS. wait forever timeout value

Definition at line 143 of file cmsis_os.h.

Typedef Documentation

typedef void(* os_pthread)(void const *argument)

Entry point of a thread.

Note
MUST REMAIN UNCHANGED: os_pthread shall be consistent in every CMSIS-RTOS.

Definition at line 175 of file cmsis_os.h.

typedef void(* os_ptimer)(void const *argument)

Entry point of a timer call back function.

Note
MUST REMAIN UNCHANGED: os_ptimer shall be consistent in every CMSIS-RTOS.

Definition at line 179 of file cmsis_os.h.

typedef struct os_mailQ_def osMailQDef_t

Definition structure for mail queue.

Note
CAN BE CHANGED: os_mailQ_def is implementation specific in every CMSIS-RTOS.
typedef struct os_mailQ_cb* osMailQId

Mail ID identifies the mail queue (pointer to a mail queue control block).

Note
CAN BE CHANGED: os_mailQ_cb is implementation specific in every CMSIS-RTOS.

Definition at line 209 of file cmsis_os.h.

Definition structure for message queue.

Note
CAN BE CHANGED: os_messageQ_def is implementation specific in every CMSIS-RTOS.
typedef struct os_messageQ_cb* osMessageQId

Message ID identifies the message queue (pointer to a message queue control block).

Note
CAN BE CHANGED: os_messageQ_cb is implementation specific in every CMSIS-RTOS.

Definition at line 205 of file cmsis_os.h.

typedef struct os_mutex_def osMutexDef_t

Mutex Definition structure contains setup information for a mutex.

Note
CAN BE CHANGED: os_mutex_def is implementation specific in every CMSIS-RTOS.
typedef struct os_mutex_cb* osMutexId

Mutex ID identifies the mutex (pointer to a mutex control block).

Note
CAN BE CHANGED: os_mutex_cb is implementation specific in every CMSIS-RTOS.

Definition at line 193 of file cmsis_os.h.

typedef struct os_pool_def osPoolDef_t

Definition structure for memory block allocation.

Note
CAN BE CHANGED: os_pool_def is implementation specific in every CMSIS-RTOS.
typedef struct os_pool_cb* osPoolId

Pool ID identifies the memory pool (pointer to a memory pool control block).

Note
CAN BE CHANGED: os_pool_cb is implementation specific in every CMSIS-RTOS.

Definition at line 201 of file cmsis_os.h.

Semaphore Definition structure contains setup information for a semaphore.

Note
CAN BE CHANGED: os_semaphore_def is implementation specific in every CMSIS-RTOS.
typedef struct os_semaphore_cb* osSemaphoreId

Semaphore ID identifies the semaphore (pointer to a semaphore control block).

Note
CAN BE CHANGED: os_semaphore_cb is implementation specific in every CMSIS-RTOS.

Definition at line 197 of file cmsis_os.h.

typedef struct os_thread_def osThreadDef_t

Thread Definition structure contains startup information of a thread.

Note
CAN BE CHANGED: os_thread_def is implementation specific in every CMSIS-RTOS.
typedef struct os_thread_cb* osThreadId

Thread ID identifies the thread (pointer to a thread control block).

Note
CAN BE CHANGED: os_thread_cb is implementation specific in every CMSIS-RTOS.

Definition at line 185 of file cmsis_os.h.

typedef struct os_timer_def osTimerDef_t

Timer Definition structure contains timer parameters.

Note
CAN BE CHANGED: os_timer_def is implementation specific in every CMSIS-RTOS.
typedef struct os_timer_cb* osTimerId

Timer ID identifies the timer (pointer to a timer control block).

Note
CAN BE CHANGED: os_timer_cb is implementation specific in every CMSIS-RTOS.

Definition at line 189 of file cmsis_os.h.

Enumeration Type Documentation

Timer type value for the timer definition.

Note
MUST REMAIN UNCHANGED: os_timer_type shall be consistent in every CMSIS-RTOS.
Enumerator:
osTimerOnce 

one-shot timer

osTimerPeriodic 

repeating timer

Definition at line 168 of file cmsis_os.h.

enum osPriority

Priority used for thread control.

Note
MUST REMAIN UNCHANGED: osPriority shall be consistent in every CMSIS-RTOS.
Enumerator:
osPriorityIdle 

priority: idle (lowest)

osPriorityLow 

priority: low

osPriorityBelowNormal 

priority: below normal

osPriorityNormal 

priority: normal (default)

osPriorityAboveNormal 

priority: above normal

osPriorityHigh 

priority: high

osPriorityRealtime 

priority: realtime (highest)

osPriorityError 

system cannot determine priority or thread has illegal priority

Definition at line 130 of file cmsis_os.h.

enum osStatus

Status code values returned by CMSIS-RTOS functions.

Note
MUST REMAIN UNCHANGED: osStatus shall be consistent in every CMSIS-RTOS.
Enumerator:
osOK 

function completed; no event occurred.

osEventSignal 

function completed; signal event occurred.

osEventMessage 

function completed; message event occurred.

osEventMail 

function completed; mail event occurred.

osEventTimeout 

function completed; timeout occurred.

osErrorParameter 

parameter error: a mandatory parameter was missing or specified an incorrect object.

osErrorResource 

resource not available: a specified resource was not available.

osErrorTimeoutResource 

resource not available within given time: a specified resource was not available within the timeout period.

osErrorISR 

not allowed in ISR context: the function cannot be called from interrupt service routines.

osErrorISRRecursive 

function called multiple times from ISR with same object.

osErrorPriority 

system cannot determine priority or thread has illegal priority.

osErrorNoMemory 

system is out of memory: it was impossible to allocate or reserve memory for the operation.

osErrorValue 

value of a parameter is out of range.

osErrorOS 

unspecified RTOS error: run-time error but no other error message fits.

os_status_reserved 

prevent from enum down-size compiler optimization.

Definition at line 147 of file cmsis_os.h.

Function Documentation

osStatus osDelay ( uint32_t  millisec)

Wait for Timeout (Time Delay)

Parameters
[in]millisectime delay value
Returns
status code that indicates the execution status of the function.
int32_t osKernelRunning ( void  )

Check if the RTOS kernel is already started.

Note
MUST REMAIN UNCHANGED: osKernelRunning shall be consistent in every CMSIS-RTOS.
Returns
0 RTOS is not started, 1 RTOS is started.
osStatus osKernelStart ( osThreadDef_t thread_def,
void *  argument 
)

Start the RTOS Kernel with executing the specified thread.

Parameters
[in]thread_defthread definition referenced with osThread.
[in]argumentpointer that is passed to the thread function as start argument.
Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osKernelStart shall be consistent in every CMSIS-RTOS.
void* osMailAlloc ( osMailQId  queue_id,
uint32_t  millisec 
)

Allocate a memory block from a mail.

Parameters
[in]queue_idmail queue ID obtained with osMailCreate.
[in]millisectimeout value or 0 in case of no time-out
Returns
pointer to memory block that can be filled with mail or NULL in case error.
Note
MUST REMAIN UNCHANGED: osMailAlloc shall be consistent in every CMSIS-RTOS.
void* osMailCAlloc ( osMailQId  queue_id,
uint32_t  millisec 
)

Allocate a memory block from a mail and set memory block to zero.

Parameters
[in]queue_idmail queue ID obtained with osMailCreate.
[in]millisectimeout value or 0 in case of no time-out
Returns
pointer to memory block that can shall filled with mail or NULL in case error.
Note
MUST REMAIN UNCHANGED: osMailCAlloc shall be consistent in every CMSIS-RTOS.
osMailQId osMailCreate ( osMailQDef_t queue_def,
osThreadId  thread_id 
)

Create and Initialize mail queue.

Parameters
[in]queue_defreference to the mail queue definition obtain with osMailQ
[in]thread_idthread ID (obtained by osThreadCreate or osThreadGetId) or NULL.
Returns
mail queue ID for reference by other functions or NULL in case of error.
Note
MUST REMAIN UNCHANGED: osMailCreate shall be consistent in every CMSIS-RTOS.
osStatus osMailFree ( osMailQId  queue_id,
void *  mail 
)

Free a memory block from a mail.

Parameters
[in]queue_idmail queue ID obtained with osMailCreate.
[in]mailpointer to the memory block that was obtained with osMailGet.
Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osMailFree shall be consistent in every CMSIS-RTOS.
osEvent osMailGet ( osMailQId  queue_id,
uint32_t  millisec 
)

Get a mail from a queue.

Parameters
[in]queue_idmail queue ID obtained with osMailCreate.
[in]millisectimeout value or 0 in case of no time-out
Returns
event that contains mail information or error code.
Note
MUST REMAIN UNCHANGED: osMailGet shall be consistent in every CMSIS-RTOS.
osStatus osMailPut ( osMailQId  queue_id,
void *  mail 
)

Put a mail to a queue.

Parameters
[in]queue_idmail queue ID obtained with osMailCreate.
[in]mailmemory block previously allocated with osMailAlloc or osMailCAlloc.
Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osMailPut shall be consistent in every CMSIS-RTOS.
osMessageQId osMessageCreate ( osMessageQDef_t queue_def,
osThreadId  thread_id 
)

Create and Initialize a Message Queue.

Parameters
[in]queue_defqueue definition referenced with osMessageQ.
[in]thread_idthread ID (obtained by osThreadCreate or osThreadGetId) or NULL.
Returns
message queue ID for reference by other functions or NULL in case of error.
Note
MUST REMAIN UNCHANGED: osMessageCreate shall be consistent in every CMSIS-RTOS.
osEvent osMessageGet ( osMessageQId  queue_id,
uint32_t  millisec 
)

Get a Message or Wait for a Message from a Queue.

Parameters
[in]queue_idmessage queue ID obtained with osMessageCreate.
[in]millisectimeout value or 0 in case of no time-out.
Returns
event information that includes status code.
Note
MUST REMAIN UNCHANGED: osMessageGet shall be consistent in every CMSIS-RTOS.
osStatus osMessagePut ( osMessageQId  queue_id,
uint32_t  info,
uint32_t  millisec 
)

Put a Message to a Queue.

Parameters
[in]queue_idmessage queue ID obtained with osMessageCreate.
[in]infomessage information.
[in]millisectimeout value or 0 in case of no time-out.
Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osMessagePut shall be consistent in every CMSIS-RTOS.
osMutexId osMutexCreate ( osMutexDef_t mutex_def)

Create and Initialize a Mutex object.

Parameters
[in]mutex_defmutex definition referenced with osMutex.
Returns
mutex ID for reference by other functions or NULL in case of error.
Note
MUST REMAIN UNCHANGED: osMutexCreate shall be consistent in every CMSIS-RTOS.
osStatus osMutexRelease ( osMutexId  mutex_id)

Release a Mutex that was obtained by osMutexWait.

Parameters
[in]mutex_idmutex ID obtained by osMutexCreate.
Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osMutexRelease shall be consistent in every CMSIS-RTOS.
osStatus osMutexWait ( osMutexId  mutex_id,
uint32_t  millisec 
)

Wait until a Mutex becomes available.

Parameters
[in]mutex_idmutex ID obtained by osMutexCreate.
[in]millisectimeout value or 0 in case of no time-out.
Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osMutexWait shall be consistent in every CMSIS-RTOS.
void* osPoolAlloc ( osPoolId  pool_id)

Allocate a memory block from a memory pool.

Parameters
[in]pool_idmemory pool ID obtain referenced with osPoolCreate.
Returns
address of the allocated memory block or NULL in case of no memory available.
Note
MUST REMAIN UNCHANGED: osPoolAlloc shall be consistent in every CMSIS-RTOS.
void* osPoolCAlloc ( osPoolId  pool_id)

Allocate a memory block from a memory pool and set memory block to zero.

Parameters
[in]pool_idmemory pool ID obtain referenced with osPoolCreate.
Returns
address of the allocated memory block or NULL in case of no memory available.
Note
MUST REMAIN UNCHANGED: osPoolCAlloc shall be consistent in every CMSIS-RTOS.
osPoolId osPoolCreate ( osPoolDef_t pool_def)

Create and Initialize a memory pool.

Parameters
[in]pool_defmemory pool definition referenced with osPool.
Returns
memory pool ID for reference by other functions or NULL in case of error.
Note
MUST REMAIN UNCHANGED: osPoolCreate shall be consistent in every CMSIS-RTOS.
osStatus osPoolFree ( osPoolId  pool_id,
void *  block 
)

Return an allocated memory block back to a specific memory pool.

Parameters
[in]pool_idmemory pool ID obtain referenced with osPoolCreate.
[in]blockaddress of the allocated memory block that is returned to the memory pool.
Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osPoolFree shall be consistent in every CMSIS-RTOS.
osSemaphoreId osSemaphoreCreate ( osSemaphoreDef_t semaphore_def,
int32_t  count 
)

Create and Initialize a Semaphore object used for managing resources.

Parameters
[in]semaphore_defsemaphore definition referenced with osSemaphore.
[in]countnumber of available resources.
Returns
semaphore ID for reference by other functions or NULL in case of error.
Note
MUST REMAIN UNCHANGED: osSemaphoreCreate shall be consistent in every CMSIS-RTOS.
osStatus osSemaphoreRelease ( osSemaphoreId  semaphore_id)

Release a Semaphore token.

Parameters
[in]semaphore_idsemaphore object referenced with osSemaphore.
Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osSemaphoreRelease shall be consistent in every CMSIS-RTOS.
int32_t osSemaphoreWait ( osSemaphoreId  semaphore_id,
uint32_t  millisec 
)

Wait until a Semaphore token becomes available.

Parameters
[in]semaphore_idsemaphore object referenced with osSemaphore.
[in]millisectimeout value or 0 in case of no time-out.
Returns
number of available tokens, or -1 in case of incorrect parameters.
Note
MUST REMAIN UNCHANGED: osSemaphoreWait shall be consistent in every CMSIS-RTOS.
int32_t osSignalClear ( osThreadId  thread_id,
int32_t  signal 
)

Clear the specified Signal Flags of an active thread.

Parameters
[in]thread_idthread ID obtained by osThreadCreate or osThreadGetId.
[in]signalspecifies the signal flags of the thread that shall be cleared.
Returns
previous signal flags of the specified thread or 0x80000000 in case of incorrect parameters.
Note
MUST REMAIN UNCHANGED: osSignalClear shall be consistent in every CMSIS-RTOS.
int32_t osSignalGet ( osThreadId  thread_id)

Get Signal Flags status of an active thread.

Parameters
[in]thread_idthread ID obtained by osThreadCreate or osThreadGetId.
Returns
previous signal flags of the specified thread or 0x80000000 in case of incorrect parameters.
Note
MUST REMAIN UNCHANGED: osSignalGet shall be consistent in every CMSIS-RTOS.
int32_t osSignalSet ( osThreadId  thread_id,
int32_t  signal 
)

Set the specified Signal Flags of an active thread.

Parameters
[in]thread_idthread ID obtained by osThreadCreate or osThreadGetId.
[in]signalspecifies the signal flags of the thread that should be set.
Returns
previous signal flags of the specified thread or 0x80000000 in case of incorrect parameters.
Note
MUST REMAIN UNCHANGED: osSignalSet shall be consistent in every CMSIS-RTOS.
osEvent osSignalWait ( int32_t  signals,
uint32_t  millisec 
)

Wait for one or more Signal Flags to become signaled for the current RUNNING thread.

Parameters
[in]signalswait until all specified signal flags set or 0 for any single signal flag.
[in]millisectimeout value or 0 in case of no time-out.
Returns
event flag information or error code.
Note
MUST REMAIN UNCHANGED: osSignalWait shall be consistent in every CMSIS-RTOS.
osThreadId osThreadCreate ( osThreadDef_t thread_def,
void *  argument 
)

Create a thread and add it to Active Threads and set it to state READY.

Parameters
[in]thread_defthread definition referenced with osThread.
[in]argumentpointer that is passed to the thread function as start argument.
Returns
thread ID for reference by other functions or NULL in case of error.
Note
MUST REMAIN UNCHANGED: osThreadCreate shall be consistent in every CMSIS-RTOS.
osThreadId osThreadGetId ( void  )

Return the thread ID of the current running thread.

Returns
thread ID for reference by other functions or NULL in case of error.
Note
MUST REMAIN UNCHANGED: osThreadGetId shall be consistent in every CMSIS-RTOS.
osPriority osThreadGetPriority ( osThreadId  thread_id)

Get current priority of an active thread.

Parameters
[in]thread_idthread ID obtained by osThreadCreate or osThreadGetId.
Returns
current priority value of the thread function.
Note
MUST REMAIN UNCHANGED: osThreadGetPriority shall be consistent in every CMSIS-RTOS.
osStatus osThreadSetPriority ( osThreadId  thread_id,
osPriority  priority 
)

Change priority of an active thread.

Parameters
[in]thread_idthread ID obtained by osThreadCreate or osThreadGetId.
[in]prioritynew priority value for the thread function.
Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osThreadSetPriority shall be consistent in every CMSIS-RTOS.
osStatus osThreadTerminate ( osThreadId  thread_id)

Terminate execution of a thread and remove it from Active Threads.

Parameters
[in]thread_idthread ID obtained by osThreadCreate or osThreadGetId.
Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osThreadTerminate shall be consistent in every CMSIS-RTOS.
osStatus osThreadYield ( void  )

Pass control to next thread that is in state READY.

Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osThreadYield shall be consistent in every CMSIS-RTOS.
osTimerId osTimerCreate ( osTimerDef_t timer_def,
os_timer_type  type,
void *  argument 
)

Create a timer.

Parameters
[in]timer_deftimer object referenced with osTimer.
[in]typeosTimerOnce for one-shot or osTimerPeriodic for periodic behavior.
[in]argumentargument to the timer call back function.
Returns
timer ID for reference by other functions or NULL in case of error.
Note
MUST REMAIN UNCHANGED: osTimerCreate shall be consistent in every CMSIS-RTOS.
osStatus osTimerStart ( osTimerId  timer_id,
uint32_t  millisec 
)

Start or restart a timer.

Parameters
[in]timer_idtimer ID obtained by osTimerCreate.
[in]millisectime delay value of the timer.
Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osTimerStart shall be consistent in every CMSIS-RTOS.
osStatus osTimerStop ( osTimerId  timer_id)

Stop the timer.

Parameters
[in]timer_idtimer ID obtained by osTimerCreate.
Returns
status code that indicates the execution status of the function.
Note
MUST REMAIN UNCHANGED: osTimerStop shall be consistent in every CMSIS-RTOS.
osEvent osWait ( uint32_t  millisec)

Wait for Signal, Message, Mail, or Timeout.

Parameters
[in]millisectimeout value or 0 in case of no time-out
Returns
event that contains signal, message, or mail information or error code.
Note
MUST REMAIN UNCHANGED: osWait shall be consistent in every CMSIS-RTOS.