CMSIS-RTOS2  Version 2.2.0
Real-Time Operating System: API and RTX Reference Implementation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Thread Functions

Events generated by thread functions. More...

Functions

void EvrRtxThreadError (osThreadId_t thread_id, int32_t status)
 Event on thread error (Error) More...
 
void EvrRtxThreadNew (osThreadFunc_t func, void *argument, const osThreadAttr_t *attr)
 Event on thread create and intialize (API) More...
 
void EvrRtxThreadCreated (osThreadId_t thread_id, uint32_t thread_addr, const char *name)
 Event on successful thread create (Op) More...
 
void EvrRtxThreadGetName (osThreadId_t thread_id, const char *name)
 Event on thread name retrieve (API) More...
 
void EvrRtxThreadGetClass (osThreadId_t thread_id, uint32_t safety_class)
 Event on thread safety class retrieve (API) More...
 
void EvrRtxThreadGetZone (osThreadId_t thread_id, uint32_t zone)
 Event on thread zone retrieve (API) More...
 
void EvrRtxThreadGetId (osThreadId_t thread_id)
 Event on current running thread ID retrieve (API) More...
 
void EvrRtxThreadGetState (osThreadId_t thread_id, osThreadState_t state)
 Event on thread state retrieve (API) More...
 
void EvrRtxThreadGetStackSize (osThreadId_t thread_id, uint32_t stack_size)
 Event on thread stack size retrieve (API) More...
 
void EvrRtxThreadGetStackSpace (osThreadId_t thread_id, uint32_t stack_space)
 Event on available stack space retrieve (API) More...
 
void EvrRtxThreadSetPriority (osThreadId_t thread_id, osPriority_t priority)
 Event on thread priority set (API) More...
 
void EvrRtxThreadPriorityUpdated (osThreadId_t thread_id, osPriority_t priority)
 Event on thread priority updated (Op) More...
 
void EvrRtxThreadGetPriority (osThreadId_t thread_id, osPriority_t priority)
 Event on thread priority retrieve (API) More...
 
void EvrRtxThreadYield (void)
 Event on thread yield (API) More...
 
void EvrRtxThreadSuspend (osThreadId_t thread_id)
 Event on thread suspend (API) More...
 
void EvrRtxThreadSuspended (osThreadId_t thread_id)
 Event on successful thread suspend (Op) More...
 
void EvrRtxThreadResume (osThreadId_t thread_id)
 Event on thread resume (API) More...
 
void EvrRtxThreadResumed (osThreadId_t thread_id)
 Event on successful thread resume (Op) More...
 
void EvrRtxThreadDetach (osThreadId_t thread_id)
 Event on thread detach (API) More...
 
void EvrRtxThreadDetached (osThreadId_t thread_id)
 Event on successful thread detach (Op) More...
 
void EvrRtxThreadJoin (osThreadId_t thread_id)
 Event on thread join (API) More...
 
void EvrRtxThreadJoinPending (osThreadId_t thread_id)
 Event on pending thread join (Op) More...
 
void EvrRtxThreadJoined (osThreadId_t thread_id)
 Event on successful thread join (Op) More...
 
void EvrRtxThreadBlocked (osThreadId_t thread_id, uint32_t timeout)
 Event on thread execution block (Detail) More...
 
void EvrRtxThreadUnblocked (osThreadId_t thread_id, uint32_t ret_val)
 Event on thread execution unblock (Detail) More...
 
void EvrRtxThreadPreempted (osThreadId_t thread_id)
 Event on running thread pre-emption (Detail) More...
 
void EvrRtxThreadSwitched (osThreadId_t thread_id)
 Event on running thread switch (Op) More...
 
void EvrRtxThreadExit (void)
 Event on thread exit (API) More...
 
void EvrRtxThreadTerminate (osThreadId_t thread_id)
 Event on thread terminate (API) More...
 
void EvrRtxThreadDestroyed (osThreadId_t thread_id)
 Event on successful thread terminate (Op) More...
 
void EvrRtxThreadFeedWatchdog (uint32_t ticks)
 Event on thread feed watchdog (API) More...
 
void EvrRtxThreadFeedWatchdogDone (void)
 Event on thread feed watchdog done (Op) More...
 
void EvrRtxThreadProtectPrivileged (void)
 Event on protect the creation of privileged threads (API) More...
 
void EvrRtxThreadPrivilegedProtected (void)
 Event on successful protect the creation of privileged threads (Op) More...
 
void EvrRtxThreadGetCount (uint32_t count)
 Event on active thread count retrieve (API) More...
 
void EvrRtxThreadEnumerate (osThreadId_t *thread_array, uint32_t array_items, uint32_t count)
 Event on active threads enumerate (API) More...
 
void EvrRtxThreadSuspendClass (uint32_t safety_class, uint32_t mode)
 Event on thread safety class suspend (API) More...
 
void EvrRtxThreadResumeClass (uint32_t safety_class, uint32_t mode)
 Event on thread safety class resume (API) More...
 
void EvrRtxThreadTerminateZone (uint32_t zone)
 Event on thread zone terminate (API) More...
 
void EvrRtxThreadWatchdogExpired (osThreadId_t thread_id)
 Event on thread watchdog expired (Error) More...
 

Description

Function Documentation

void EvrRtxThreadError ( osThreadId_t  thread_id,
int32_t  status 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId or NULL when ID is unknown.
[in]statusextended execution status.

The event ThreadError is generated when Thread Management routines complete their execution due to an error.

The status parameter indicates the execution status and can be one of the osStatus_t codes or one of the extended execution status codes which are summarized in the table below.

Extended Status Code Description
osRtxErrorKernelNotReady Kernel scheduler is not in Ready state.
osRtxErrorKernelNotRunning Kernel scheduler is not executing - there is no running thread.
osRtxErrorInvalidControlBlock Object control block with invalid alignment or size was specified.
osRtxErrorInvalidDataMemory Object data memory with invalid alignment or size was specified.
osRtxErrorInvalidThreadStack Thread stack memory with invalid alignment or size was specified.
osRtxErrorInvalidPriority Invalid thread priority was specified.
osRtxErrorInvalidPrivilegedMode Privileged thread cannot be created - kernel protect privileged is active.
osRtxErrorThreadNotJoinable Specified thread is not joinable.
osRtxErrorMutexNotOwned Specified mutex is not owned by the current running thread.
osRtxErrorMutexNotLocked Specified mutex is not locked.
osRtxErrorMutexLockLimit Maximum number of recursive mutex locks reached.
osRtxErrorSemaphoreCountLimit Semaphore count limit reached.
osRtxErrorTZ_InitContext_S Secure context memory system initialization failed.
osRtxErrorTZ_AllocContext_S Secure context memory allocation failed.
osRtxErrorTZ_FreeContext_S Secure context memory deallocation failed.
osRtxErrorTZ_LoadContext_S Secure context load failed.
osRtxErrorTZ_SaveContext_S Secure context save failed.

Value in the Event Recorder shows:

  • thread_id : thread ID.
  • status : execution status code.
void EvrRtxThreadNew ( osThreadFunc_t  func,
void *  argument,
const osThreadAttr_t attr 
)
Parameters
[in]functhread function.
[in]argumentpointer that is passed to the thread function as start argument.
[in]attrthread attributes.

The event ThreadNew is generated when the function osThreadNew is called.

Value in the Event Recorder shows:

  • func : memory address of thread function.
  • argument : memory address of thread function start argument.
  • attr : memory address of Thread attributes or 0 when they are not specified.
void EvrRtxThreadCreated ( osThreadId_t  thread_id,
uint32_t  thread_addr,
const char *  name 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.
[in]thread_addrthread entry address.
[in]namepointer to thread object name.

The event ThreadCreated is generated when the function osThreadNew successfully creates a thread object.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadGetName ( osThreadId_t  thread_id,
const char *  name 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.
[in]namepointer to thread object name.

The event ThreadGetName is generated when the function osThreadGetName is called and its execution result is known.

Value in the Event Recorder shows:

  • thread_id : thread ID.
  • name : retrieved memory address of name string (0 in case of a failure).
void EvrRtxThreadGetClass ( osThreadId_t  thread_id,
uint32_t  safety_class 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.
[in]safety_classthread safety class.

The event ThreadGetClass is generated when the function osThreadGetClass is called and its execution result is known.

Value in the Event Recorder shows:

  • thread_id : thread ID.
  • safety_class : retrieved safety class value (osErrorId in case of a failure).
void EvrRtxThreadGetZone ( osThreadId_t  thread_id,
uint32_t  zone 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.
[in]zonethread zone.

The event ThreadGetZone is generated when the function osThreadGetZone is called and its execution result is known.

Value in the Event Recorder shows:

  • thread_id : thread ID.
  • zone : retrieved MPU Protected Zone value (osErrorId in case of a failure).
void EvrRtxThreadGetId ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadGetId is generated when the function osThreadGetId is called and its execution result is known.

Value in the Event Recorder shows:

  • thread_id : retrieved thread (0 in case of a failure).
void EvrRtxThreadGetState ( osThreadId_t  thread_id,
osThreadState_t  state 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.
[in]statecurrent thread state of the specified thread.

The event ThreadGetState is generated when the function osThreadGetState is called and its execution result is known.

Value in the Event Recorder shows:

  • thread_id : thread ID.
  • state : retrieved current thread state.
void EvrRtxThreadGetStackSize ( osThreadId_t  thread_id,
uint32_t  stack_size 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.
[in]stack_sizestack size in bytes.

The event ThreadGetStackSize is generated when the function osThreadGetStackSize is called and its execution result is known.

Value in the Event Recorder shows:

  • thread_id : thread ID.
  • stack_size : retrieved remaining stack space in bytes (0 in case of a failure).
void EvrRtxThreadGetStackSpace ( osThreadId_t  thread_id,
uint32_t  stack_space 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.
[in]stack_spaceremaining stack space in bytes.

The event ThreadGetStackSpace is generated when the function osThreadGetStackSpace is called and its execution result is known.

Value in the Event Recorder shows:

  • thread_id : thread ID.
  • stack_space : retrieved remaining stack space in bytes (0 in case of a failure).
void EvrRtxThreadSetPriority ( osThreadId_t  thread_id,
osPriority_t  priority 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.
[in]prioritynew priority value for the thread function.

The event ThreadSetPriority is generated when the function osThreadSetPriority is called.

Value in the Event Recorder shows:

  • thread_id : thread ID.
  • priority : new priority value for the thread function.
void EvrRtxThreadPriorityUpdated ( osThreadId_t  thread_id,
osPriority_t  priority 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.
[in]prioritynew priority value for the thread function.

The event ThreadPriorityUpdated is generated when the function osThreadSetPriority successfully updated the specified thread priority.

Value in the Event Recorder shows:

  • thread_id : thread ID.
  • priority : new priority value for the thread function.
void EvrRtxThreadGetPriority ( osThreadId_t  thread_id,
osPriority_t  priority 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.
[in]prioritycurrent priority value of the specified thread.

The event ThreadGetPriority is generated when the function osThreadGetPriority is called and its execution result is known.

Value in the Event Recorder shows:

  • thread_id : thread ID.
  • priority : current priority value of the specified thread.
void EvrRtxThreadYield ( void  )

The event ThreadYield is generated when the function osThreadYield is called.

void EvrRtxThreadSuspend ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadSuspend is generated when the function osThreadSuspend is called.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadSuspended ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadSuspended is generated when the function osThreadSuspend successfully suspends the specified thread.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadResume ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadResume is generated when the function osThreadResume is called.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadResumed ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadResumed is generated when the function osThreadResume successfully resumes the specified thread.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadDetach ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadDetach is generated when the function osThreadDetach is called.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadDetached ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadDetached is generated when the function osThreadDetach successfully detaches the specified thread.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadJoin ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadJoin is generated when the function osThreadJoin is called.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadJoinPending ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadJoinPending is generated when the function osThreadJoin suspends current running thread until the specified thread terminates.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadJoined ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadJoined is generated when the function osThreadJoin successfully joins the specified thread.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadBlocked ( osThreadId_t  thread_id,
uint32_t  timeout 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.
[in]timeoutTimeout Value or 0 in case of no time-out.

The event ThreadBlocked is generated when the current running thread execution is blocked.

Value in the Event Recorder shows:

void EvrRtxThreadUnblocked ( osThreadId_t  thread_id,
uint32_t  ret_val 
)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.
[in]ret_valextended execution status of the thread.

The event ThreadUnblocked is generated when the blocked thread execution is unblocked.

Value in the Event Recorder shows:

  • thread_id : thread ID.
  • ret_val :
void EvrRtxThreadPreempted ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadPreempted is generated when current running thread execution is preempted.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadSwitched ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadSwitched is generated when current running thread execution switches.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadExit ( void  )

The event ThreadExit is generated when the function osThreadExit is called.

void EvrRtxThreadTerminate ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadTerminate is generated when the function osThreadTerminate is called.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadDestroyed ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew or osThreadGetId.

The event ThreadDestroyed is generated when the function osThreadExit or osThreadTerminate successfully terminates the thread.

Value in the Event Recorder shows:

  • thread_id : thread ID.
void EvrRtxThreadFeedWatchdog ( uint32_t  ticks)
Parameters
[in]tickstimeout in number of ticks.

The event ThreadFeedWatchdog is generated when the function osThreadFeedWatchdog is called.

Value in the Event Recorder shows:

  • ticks : watchdog timeout in number of kernel ticks.
void EvrRtxThreadFeedWatchdogDone ( void  )

The event ThreadFeedWatchdogDone is generated when the function osThreadFeedWatchdog successfully feeds the watchdog timer.

void EvrRtxThreadProtectPrivileged ( void  )

The event ThreadProtectPrivileged is generated when the function osThreadProtectPrivileged is called.

void EvrRtxThreadPrivilegedProtected ( void  )

The event ThreadPrivilegedProtected is generated when the function osThreadProtectPrivileged successfully applies the new privileged thread creation protection.

void EvrRtxThreadGetCount ( uint32_t  count)
Parameters
[in]countnumber of active threads.

The event ThreadGetCount is generated when the function osThreadGetCount is called and its execution result is known.

Value in the Event Recorder shows:

  • count : retrieved number of active threads (0 in case of a failure).
void EvrRtxThreadEnumerate ( osThreadId_t thread_array,
uint32_t  array_items,
uint32_t  count 
)
Parameters
[in]thread_arraypointer to array for retrieving thread IDs.
[in]array_itemsmaximum number of items in array for retrieving thread IDs.
[in]countnumber of enumerated threads.

The event ThreadEnumerate is generated when the function osThreadEnumerate is called and its execution result is known.

Value in the Event Recorder shows:

  • thread_array : memory address of array for retrieving thread IDs.
  • array_items : maximum number of items in thread_array.
  • count : number of enumerated threads (0 in case of a failure).
void EvrRtxThreadSuspendClass ( uint32_t  safety_class,
uint32_t  mode 
)
Parameters
[in]safety_classsafety class.
[in]modesafety mode.

The event ThreadSuspendClass is generated when the function osThreadSuspendClass is called.

Value in the Event Recorder shows:

  • safety_class : safety class value.
  • mode : operation mode.
void EvrRtxThreadResumeClass ( uint32_t  safety_class,
uint32_t  mode 
)
Parameters
[in]safety_classsafety class.
[in]modesafety mode.

The event ThreadResumeClass is generated when the function osThreadResumeClass is called.

Value in the Event Recorder shows:

  • safety_class : safety class value.
  • mode : operation mode.
void EvrRtxThreadTerminateZone ( uint32_t  zone)
Parameters
[in]zonethread zone.

The event ThreadTerminateZone is generated when the function osThreadTerminateZone is called.

Value in the Event Recorder shows:

  • zone : MPU Protected Zone value.
void EvrRtxThreadWatchdogExpired ( osThreadId_t  thread_id)
Parameters
[in]thread_idthread ID obtained by osThreadNew.

The event ThreadWatchdogExpired is generated when the thread watchdog timer expires.

Value in the Event Recorder shows:

  • thread_id : thread ID.