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

信号量函数

事件功能

信号量函数生成的事件。更多...

函数

void EvrRtxSemaphoreError (osSemaphoreId_t semaphore_id, int32_t status)
 信号量错误事件(错误)更多...
 
void EvrRtxSemaphoreNew (uint32_t max_count, uint32_t initial_count, const osSemaphoreAttr_t *attr)
 信号量上的事件创建和初始化(API)更多...
 
void EvrRtxSemaphoreCreated (osSemaphoreId_t semaphore_id, const char *name)
 成功信号量创建活动(Op)更多...
 
void EvrRtxSemaphoreGetName (osSemaphoreId_t semaphore_id, const char *name)
 信号量名称检索(API)上的事件 更多...
 
void EvrRtxSemaphoreAcquire (osSemaphoreId_t semaphore_id, uint32_t timeout)
 关于信号量获取(API)的事件 更多...
 
void EvrRtxSemaphoreAcquirePending (osSemaphoreId_t semaphore_id, uint32_t timeout)
 待定信号量事件获得(Op)更多...
 
void EvrRtxSemaphoreAcquireTimeout (osSemaphoreId_t semaphore_id)
 信号量上的事件获得超时(Op)更多...
 
void EvrRtxSemaphoreAcquired (osSemaphoreId_t semaphore_id, uint32_t tokens)
 获得成功信号量的事件(Op)更多...
 
void EvrRtxSemaphoreNotAcquired (osSemaphoreId_t semaphore_id)
 不成功的信号量获得的事件(Op)更多...
 
void EvrRtxSemaphoreRelease (osSemaphoreId_t semaphore_id)
 关于信号量发布(API)的事件 更多...
 
void EvrRtxSemaphoreReleased (osSemaphoreId_t semaphore_id, uint32_t tokens)
 成功的信号量发布活动(Op)更多...
 
void EvrRtxSemaphoreGetCount (osSemaphoreId_t semaphore_id, uint32_t count)
 信号量令牌计数检索(API)上的事件 更多...
 
void EvrRtxSemaphoreDelete (osSemaphoreId_t semaphore_id)
 信号量删除事件(API)更多...
 
void EvrRtxSemaphoreDestroyed (osSemaphoreId_t semaphore_id)
 成功信号量删除事件(Op)更多...
 

 

描述

函数文档

void EvrRtxSemaphoreError(osSemaphoreId_t semaphore_id,
  int32_t status 
 )  

参数

[in]semaphore_id通过 osSemaphoreNew 获取的信号量 ID 或 ID 未知时的 NULL。
[in]status扩展执行状态。

当信号量例程由于错误而完成执行时,将生成事件 SemaphoreError

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安全上下文保存失败。

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。
  • status : 执行状态代码。

 

void EvrRtxSemaphoreNew(uint32_t max_count,
  uint32_t initial_count,
  const osSemaphoreAttr_tattr 
 )  

参数

[in]max_count最大可用令牌数。
[in]initial_count可用令牌的初始数量。
[in]attr信号量属性。

调用函数 osSemaphoreNew 时会生成事件 SemaphoreNew

事件记录器中的值显示:

  • max_count : 最大可用令牌数。
  • initial_count : 可用令牌的初始数量。
  • attr : 信号量属性的内存地址,如果未指定,则为 0。

如果在 API 调用中提供了信号量属性,则它们也会在事件记录器中详细说明。

 

void EvrRtxSemaphoreCreated(osSemaphoreId_t semaphore_id,
  const char * name 
 )  

参数

[in]semaphore_idosSemaphoreNew 获得的信号量 ID。
[in]name指向信号量对象名称的指针。

当函数 osSemaphoreNew 成功创建信号量对象时,将生成事件 SemaphoreCreated

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。

 

void EvrRtxSemaphoreGetName(osSemaphoreId_t semaphore_id,
  const char * name 
 )  

参数

[in]semaphore_idosSemaphoreNew 获得的信号量 ID。
[in]name指向信号量对象名称的指针。

调用函数 osSemaphoreGetName 并且其执行结果已知时,将生成事件 SemaphoreGetName

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。
  • name : 检索名称字符串的内存地址(如果发生故障,则为 0)。

 

void EvrRtxSemaphoreAcquire(osSemaphoreId_t semaphore_id,
  uint32_t timeout 
 )  

参数

[in]semaphore_idosSemaphoreNew 获得的信号量 ID。
[in]timeout超时值,如果没有超时,则为 0。

调用函数 osSemaphoreAcquire 时会生成事件 SemaphoreAcquire

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。
  • timeout : 超时值。

 

void EvrRtxSemaphoreAcquirePending(osSemaphoreId_t semaphore_id,
  uint32_t timeout 
 )  

参数

[in]semaphore_idosSemaphoreNew 获得的信号量 ID。
[in]timeout超时值,如果没有超时,则为 0。

当函数 osSemaphoreAcquire 阻塞当前正在运行的线程并等待信号量令牌变为可用时,将生成事件 SemaphoreAcquirePending

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。
  • timeout : 超时值。

 

void EvrRtxSemaphoreAcquireTimeout(osSemaphoreId_t semaphore_id) 

参数

[in]semaphore_idosSemaphoreNew 获得的信号量 ID。

等待信号量变为可用时生成的事件 SemaphoreAcquireTimeout 由于等待超时过期而中止。

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。

 

void EvrRtxSemaphoreAcquired(osSemaphoreId_t semaphore_id,
  uint32_t tokens 
 )  

参数

[in]semaphore_idosSemaphoreNew 获得的信号量 ID。
[in]tokens可用令牌数量。

当函数 osSemaphoreAcquire 成功获取信号量令牌时,将生成事件 SemaphoreAcquired

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。
  • tokens : 可用令牌。

 

void EvrRtxSemaphoreNotAcquired(osSemaphoreId_t semaphore_id) 

参数

[in]semaphore_idosSemaphoreNew 获得的信号量 ID。

当函数 osMutexAcquire 在没有超时的情况下返回并且未获取信号量令牌时,将生成事件 SemaphoreNotAcquired

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。

 

void EvrRtxSemaphoreRelease(osSemaphoreId_t semaphore_id) 

参数

[in]semaphore_idosSemaphoreNew 获得的信号量 ID。

调用函数 osSemaphoreRelease 时会生成事件 SemaphoreRelease

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。

 

void EvrRtxSemaphoreReleased(osSemaphoreId_t semaphore_id,
  uint32_t tokens 
 )  

参数

[in]semaphore_idosSemaphoreNew 获得的信号量 ID。
[in]tokens可用令牌数量。

当函数 osSemaphoreRelease 成功释放信号量令牌时,将生成事件 SemaphoreReleased

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。
  • tokens : 可用令牌。

 

void EvrRtxSemaphoreGetCount(osSemaphoreId_t semaphore_id,
  uint32_t count 
 )  

参数

[in]semaphore_idosSemaphoreNew 获得的信号量 ID。
[in]count当前可用令牌的数量。

当调用函数 osSemaphoreGetCount 并且其执行结果已知时,将生成事件 SemaphoreGetCount

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。
  • count : 检索当前可用令牌的数量。

 

void EvrRtxSemaphoreDelete(osSemaphoreId_t semaphore_id) 

参数

[in]semaphore_idosSemaphoreNew 获得的信号量 ID。

调用函数 osSemaphoreDelete 时会生成事件 SemaphoreDelete

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。

 

void EvrRtxSemaphoreDestroyed(osSemaphoreId_t semaphore_id) 

参数

[in]semaphore_idosSemaphoreNew 获得的信号量 ID。

当函数 osSemaphoreDelete 成功删除信号量对象时,将生成事件 SemaphoreDestroyed

事件记录器中的值显示:

  • semaphore_id : 信号量 ID。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值