CMSIS-RTOS2 文档翻译 之 参考(RTX5 特定的 API 之 事件功能(线程函数))

线程函数

线程函数生成的事件。更多...

函数

void EvrRtxThreadError (osThreadId_t thread_id, int32_t status)
 线程错误事件(错误)更多...
 
void EvrRtxThreadNew (osThreadFunc_t func, void *argument, const osThreadAttr_t *attr)
 线程创建和初始化事件(API)更多...
 
void EvrRtxThreadCreated (osThreadId_t thread_id, uint32_t thread_addr)
 成功创建线程的事件(Op)更多...
 
void EvrRtxThreadGetName (osThreadId_t thread_id, const char *name)
 线程名称检索事件(API)更多...
 
void EvrRtxThreadGetId (osThreadId_t thread_id)
 当前正在运行的线程 ID 检索事件 (API) 更多...
 
void EvrRtxThreadGetState (osThreadId_t thread_id, osThreadState_t state)
 线程状态检索事件(API)更多...
 
void EvrRtxThreadGetStackSize (osThreadId_t thread_id, uint32_t stack_size)
 线程堆栈大小检索事件(API)更多...
 
void EvrRtxThreadGetStackSpace (osThreadId_t thread_id, uint32_t stack_space)
 可用堆栈空间检索事件 (API) 更多...
 
void EvrRtxThreadSetPriority (osThreadId_t thread_id, osPriority_t priority)
 线程优先级设置事件(API)更多...
 
void EvrRtxThreadGetPriority (osThreadId_t thread_id, osPriority_t priority)
 线程优先检索事件(API)更多...
 
void EvrRtxThreadYield (void)
 线程收益事件(API)更多...
 
void EvrRtxThreadSuspend (osThreadId_t thread_id)
 线程挂起事件(API)更多...
 
void EvrRtxThreadSuspended (osThreadId_t thread_id)
 成功线程挂起的事件(Op)更多...
 
void EvrRtxThreadResume (osThreadId_t thread_id)
 线程恢复事件(API)更多...
void EvrRtxThreadResumed (osThreadId_t thread_id)
 成功的线程恢复事件(Op)更多...
 
void EvrRtxThreadDetach (osThreadId_t thread_id)
 线程分离事件(API)更多...
 
void EvrRtxThreadDetached (osThreadId_t thread_id)
 成功的线程分离事件(Op)更多...
 
void EvrRtxThreadJoin (osThreadId_t thread_id)
 线程连接事件(API)更多...
 
void EvrRtxThreadJoinPending (osThreadId_t thread_id)
 挂起线程连接事件(Op)更多...
 
void EvrRtxThreadJoined (osThreadId_t thread_id)
 成功的线程连接事件(Op)更多...
 
void EvrRtxThreadBlocked (osThreadId_t thread_id, uint32_t timeout)
 线程执行块事件(Op)更多...
 
void EvrRtxThreadUnblocked (osThreadId_t thread_id, uint32_t ret_val)
 线程执行解除阻塞事件(Op)更多...
 
void EvrRtxThreadPreempted (osThreadId_t thread_id)
 运行线程优先事件(Op)更多...
 
void EvrRtxThreadSwitched (osThreadId_t thread_id)
 运行线程切换事件(Op)更多...
void EvrRtxThreadExit (void)
 线程退出事件(API)更多...
 
void EvrRtxThreadTerminate (osThreadId_t thread_id)
 线程终止事件(API)更多...
 
void EvrRtxThreadDestroyed (osThreadId_t thread_id)
 成功的线程终止事件(Op)更多...
 
void EvrRtxThreadGetCount (uint32_t count)
 活动线程数检索事件(API)更多...
 
void EvrRtxThreadEnumerate (osThreadId_t *thread_array, uint32_t array_items, uint32_t count)
 活动线程枚举事件(API)更多...
 
void EvrRtxThreadFlagsWaitTimeout (void)
 线程标志等待超时事件(Op)更多...
 
void EvrRtxThreadDelay (uint32_t ticks)
 等待超时事件(API)更多...
 
void EvrRtxThreadDelayUntil (uint32_t ticks)
 等待指定时间事件(API)更多...
 
void EvrRtxThreadDelayCompleted (void)
 已完成等待的事件(Op)更多...
 

描述

函数文档

void EvrRtxThreadError(osThreadId_t thread_id,
  int32_t status 
 )  
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取,或在 ID 未知时为 NULL 。
[in]status延长执行状态。

线程标志和线程管理例程由于错误而完成执行时,会生成事件 ThreadError 。

status 参数指示执行状态,可以是 osStatus_t 代码之一或下表中汇总的扩展执行状态代码之一。

扩展状态码描述
osRtxErrorKernelNotReady内核调度程序未处于就绪状态。
osRtxErrorKernelNotRunning内核调度程序未执行 - 没有正在运行的线程。
osRtxErrorInvalidControlBlock指定了具有无效对齐或大小的对象控制块。
osRtxErrorInvalidDataMemory指定了具有无效对齐或大小的对象数据存储器。
osRtxErrorInvalidThreadStack线程堆栈内存的无效对齐或大小被指定。
osRtxErrorInvalidPriority指定了无效的线程优先级。
osRtxErrorThreadNotJoinable指定的线程不可连接。
osRtxErrorMutexNotOwned指定的互斥锁不属于当前正在运行的线程。
osRtxErrorMutexNotLocked指定的互斥锁未锁定。
osRtxErrorMutexLockLimit达到递归互斥锁的最大数目。
osRtxErrorSemaphoreCountLimit达到了信号量计数限制。
osRtxErrorTZ_InitContext_S安全上下文内存系统初始化失败
osRtxErrorTZ_AllocContext_S安全上下文内存分配失败。
osRtxErrorTZ_FreeContext_S安全上下文内存释放失败。
osRtxErrorTZ_LoadContext_S安全上下文加载失败。
osRtxErrorTZ_SaveContext_S安全上下文保存失败。

事件记录器中的值显示:

  • thread_id : 线程 ID。
  • status : 执行状态代码。
void EvrRtxThreadNew(osThreadFunc_t func,
  void * argument,
  const osThreadAttr_tattr 
 )  
参数
[in]func线程函数。
[in]argument作为启动参数传递给线程函数的指针。
[in]attr线程属性。

事件 ThreadNew 在调用函数 osThreadNew 时生成。

事件记录器中的值显示:

  • func : 线程函数的内存地址。
  • argument : 线程函数启动参数的内存地址。
  • attr : 线程属性的内存地址或未指定时的 0。

在 API 调用中提供线程属性的情况下,它们也在事件记录器中详细说明。

void EvrRtxThreadCreated(osThreadId_t thread_id,
  uint32_t thread_addr 
 )  
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。
[in]thread_addr线程入口地址。

事件 ThreadCreated 在函数 osThreadNew 成功创建线程对象时生成。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadGetName(osThreadId_t thread_id,
  const char * name 
 )  
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。
[in]name指向线程对象名称的指针。

当函数 osThreadGetName 被调用并且其执行结果已知时,会生成事件 ThreadGetName。

事件记录器中的值显示:

  • thread_id : 线程 ID。
  • name : 检索到名称字符串的内存地址(如果发生故障,则为 0)。
void EvrRtxThreadGetId(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

事件 ThreadGetId 在调用函数 osThreadGetId 并且其执行结果已知时生成。

事件记录器中的值显示:

  • thread_id : 检索到的线程(在发生故障的情况下为 0)。
void EvrRtxThreadGetState(osThreadId_t thread_id,
  osThreadState_t state 
 )  
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。
[in]state指定线程的当前线程状态。

当调用函数 osThreadGetState 并且其执行结果已知时,会生成事件 ThreadGetState。

事件记录器中的值显示:

  • thread_id : 线程 ID。
  • state : 检索当前线程状态。
void EvrRtxThreadGetStackSize(osThreadId_t thread_id,
  uint32_t stack_size 
 )  
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。
[in]stack_size堆栈大小以字节为单位

事件 ThreadGetStackSize 是在函数 osThreadGetStackSize 被调用并且其执行结果已知时生成的。

事件记录器中的值显示:

  • thread_id : 线程 ID。
  • stack_size : 以字节为单位检索剩余堆栈空间(如果发生故障,则为 0)。
void EvrRtxThreadGetStackSpace(osThreadId_t thread_id,
  uint32_t stack_space 
 )  
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。
[in]stack_space剩余堆栈空间以字节为单位

事件 ThreadGetStackSpace 是在函数 osThreadGetStackSpace 被调用并且其执行结果已知时生成的。

事件记录器中的值显示:

  • thread_id : 线程 ID。
  • stack_space : 以字节为单位检索剩余堆栈空间(如果发生故障,则为 0)。
void EvrRtxThreadSetPriority(osThreadId_t thread_id,
  osPriority_t priority 
 )  
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。
[in]priority线程函数的新优先值。

事件 ThreadSetPriority 在调用函数 osThreadSetPriority 时生成。

事件记录器中的值显示:

  • thread_id : 线程 ID。
  • priority : 线程函数的新优先值。
void EvrRtxThreadGetPriority(osThreadId_t thread_id,
  osPriority_t priority 
 )  
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。
[in]priority指定线程的当前优先级值。

事件 ThreadGetPriority 在调用函数 osThreadGetPriority 并且其执行结果已知时生成。

事件记录器中的值显示:

  • thread_id : 线程 ID。
  • priority : 指定线程的当前优先级值。
void EvrRtxThreadYield(void  ) 

事件 ThreadYield 在调用函数 osThreadYield 时生成。

void EvrRtxThreadSuspend(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

当调用 osThreadSuspend 函数时会生成事件 ThreadSuspend。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadSuspended(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

事件 ThreadSuspended 在函数 osThreadSuspend 成功挂起指定的线程时生成。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadResume(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

事件 ThreadResume 在调用函数 osThreadResume 时生成。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadResumed(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

当函数 osThreadResume 成功恢复指定的线程时,将生成事件 ThreadResumed。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadDetach(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

事件 ThreadDetach 是在函数 osThreadDetach 被调用时生成的。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadDetached(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

事件 ThreadDetached 在函数 osThreadDetach 成功分离指定的线程时生成。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadJoin(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

事件 ThreadJoin 是在函数 osThreadJoin 被调用时生成的。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadJoinPending(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

当函数 osThreadJoin 挂起当前正在运行的线程直到指定的线程终止时,会生成事件 ThreadJoinPending。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadJoined(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

事件 ThreadJoined 在函数 osThreadJoin 成功加入指定的线程时生成。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadBlocked(osThreadId_t thread_id,
  uint32_t timeout 
 )  
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。
[in]timeout超时值或 0 在没有超时的情况下。

事件 ThreadBlocked 在当前正在运行的线程执行被阻止时生成。

事件记录器中的值显示:

  • thread_id : 线程 ID。
  • timeout : 超时值。
void EvrRtxThreadUnblocked(osThreadId_t thread_id,
  uint32_t ret_val 
 )  
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。
[in]ret_val扩展线程的执行状态。

当阻塞的线程执行被解除时,会生成事件 ThreadUnblocked。

事件记录器中的值显示:

  • thread_id : 线程 ID。
  • ret_val : 扩展线程的执行状态。
void EvrRtxThreadPreempted(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

事件 ThreadPreempted 在当前正在运行的线程执行被抢占时生成。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadSwitched(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

事件 ThreadSwitched 在当前正在运行的线程执行切换时生成。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadExit(void  ) 

ThreadExit 事件是在函数 osThreadExit 被调用时生成的。

void EvrRtxThreadTerminate(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

事件 ThreadTerminate 在调用 osThreadTerminate 函数时生成。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadDestroyed(osThreadId_t thread_id) 
参数
[in]thread_id线程 ID 由 osThreadNew 或 osThreadGetId 获取。

事件 ThreadDestroyed 在函数 osThreadExit 或 osThreadTerminate 成功终止线程时生成。

事件记录器中的值显示:

  • thread_id : 线程 ID。
void EvrRtxThreadGetCount(uint32_t count) 
参数
[in]count活动线程数。

事件 ThreadGetCount 在函数 osThreadGetCount 被调用并且其执行结果已知时生成。

事件记录器中的值显示:

  • count : 检索活动线程的数量(如果发生故障,则为 0)。
void EvrRtxThreadEnumerate(osThreadId_tthread_array,
  uint32_t array_items,
  uint32_t count 
 )  
参数
[in]thread_array指向数组以检索线程 ID 的指针。
[in]array_items数组中用于检索线程 ID 的最大项目数。
[in]count枚举线程数。

事件 ThreadEnumerate 是在函数 osThreadEnumerate 被调用并且其执行结果已知时生成的。

事件记录器中的值显示:

  • thread_array : 用于检索线程 ID 的数组的内存地址。
  • array_items : thread_array 中的最大项目数。
  • count : 枚举线程数(在发生故障的情况下为 0)。
void EvrRtxThreadFlagsWaitTimeout(void  ) 

事件 ThreadFlagsWaitTimeout 在等待由于过期的等待超时而导致信号线程标志等待中断时生成。

void EvrRtxThreadDelay(uint32_t ticks) 
参数
[in]ticks时间滴答值。

当调用 osDelay 函数时会生成事件 ThreadDelay。

事件记录器中的值显示:

  • ticks : 时间滴答值。
void EvrRtxThreadDelayUntil(uint32_t ticks) 
参数
[in]ticks绝对时间节拍。

事件 ThreadDelayUntil 在调用函数 osDelayUntil 时生成。

事件记录器中的值显示:

  • ticks : 绝对延迟时间以节拍为单位。
void EvrRtxThreadDelayCompleted(void  ) 

当线程延迟到期时,会生成事件 ThreadDelayCompleted。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值