信号量函数
事件功能
信号量函数生成的事件。更多...
函数 | |
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_t * | attr | ||
) |
参数
[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_id | osSemaphoreNew 获得的信号量 ID。 |
[in] | name | 指向信号量对象名称的指针。 |
当函数 osSemaphoreNew 成功创建信号量对象时,将生成事件 SemaphoreCreated。
事件记录器中的值显示:
- semaphore_id : 信号量 ID。
void EvrRtxSemaphoreGetName | ( | osSemaphoreId_t | semaphore_id, |
const char * | name | ||
) |
参数
[in] | semaphore_id | osSemaphoreNew 获得的信号量 ID。 |
[in] | name | 指向信号量对象名称的指针。 |
调用函数 osSemaphoreGetName 并且其执行结果已知时,将生成事件 SemaphoreGetName。
事件记录器中的值显示:
- semaphore_id : 信号量 ID。
- name : 检索名称字符串的内存地址(如果发生故障,则为 0)。
void EvrRtxSemaphoreAcquire | ( | osSemaphoreId_t | semaphore_id, |
uint32_t | timeout | ||
) |
参数
[in] | semaphore_id | osSemaphoreNew 获得的信号量 ID。 |
[in] | timeout | 超时值,如果没有超时,则为 0。 |
调用函数 osSemaphoreAcquire 时会生成事件 SemaphoreAcquire。
事件记录器中的值显示:
- semaphore_id : 信号量 ID。
- timeout : 超时值。
void EvrRtxSemaphoreAcquirePending | ( | osSemaphoreId_t | semaphore_id, |
uint32_t | timeout | ||
) |
参数
[in] | semaphore_id | osSemaphoreNew 获得的信号量 ID。 |
[in] | timeout | 超时值,如果没有超时,则为 0。 |
当函数 osSemaphoreAcquire 阻塞当前正在运行的线程并等待信号量令牌变为可用时,将生成事件 SemaphoreAcquirePending。
事件记录器中的值显示:
- semaphore_id : 信号量 ID。
- timeout : 超时值。
void EvrRtxSemaphoreAcquireTimeout | ( | osSemaphoreId_t | semaphore_id | ) |
参数
[in] | semaphore_id | osSemaphoreNew 获得的信号量 ID。 |
等待信号量变为可用时生成的事件 SemaphoreAcquireTimeout 由于等待超时过期而中止。
事件记录器中的值显示:
- semaphore_id : 信号量 ID。
void EvrRtxSemaphoreAcquired | ( | osSemaphoreId_t | semaphore_id, |
uint32_t | tokens | ||
) |
参数
[in] | semaphore_id | osSemaphoreNew 获得的信号量 ID。 |
[in] | tokens | 可用令牌数量。 |
当函数 osSemaphoreAcquire 成功获取信号量令牌时,将生成事件 SemaphoreAcquired。
事件记录器中的值显示:
- semaphore_id : 信号量 ID。
- tokens : 可用令牌。
void EvrRtxSemaphoreNotAcquired | ( | osSemaphoreId_t | semaphore_id | ) |
参数
[in] | semaphore_id | osSemaphoreNew 获得的信号量 ID。 |
当函数 osMutexAcquire 在没有超时的情况下返回并且未获取信号量令牌时,将生成事件 SemaphoreNotAcquired。
事件记录器中的值显示:
- semaphore_id : 信号量 ID。
void EvrRtxSemaphoreRelease | ( | osSemaphoreId_t | semaphore_id | ) |
参数
[in] | semaphore_id | osSemaphoreNew 获得的信号量 ID。 |
调用函数 osSemaphoreRelease 时会生成事件 SemaphoreRelease。
事件记录器中的值显示:
- semaphore_id : 信号量 ID。
void EvrRtxSemaphoreReleased | ( | osSemaphoreId_t | semaphore_id, |
uint32_t | tokens | ||
) |
参数
[in] | semaphore_id | osSemaphoreNew 获得的信号量 ID。 |
[in] | tokens | 可用令牌数量。 |
当函数 osSemaphoreRelease 成功释放信号量令牌时,将生成事件 SemaphoreReleased。
事件记录器中的值显示:
- semaphore_id : 信号量 ID。
- tokens : 可用令牌。
void EvrRtxSemaphoreGetCount | ( | osSemaphoreId_t | semaphore_id, |
uint32_t | count | ||
) |
参数
[in] | semaphore_id | osSemaphoreNew 获得的信号量 ID。 |
[in] | count | 当前可用令牌的数量。 |
当调用函数 osSemaphoreGetCount 并且其执行结果已知时,将生成事件 SemaphoreGetCount。
事件记录器中的值显示:
- semaphore_id : 信号量 ID。
- count : 检索当前可用令牌的数量。
void EvrRtxSemaphoreDelete | ( | osSemaphoreId_t | semaphore_id | ) |
参数
[in] | semaphore_id | osSemaphoreNew 获得的信号量 ID。 |
调用函数 osSemaphoreDelete 时会生成事件 SemaphoreDelete。
事件记录器中的值显示:
- semaphore_id : 信号量 ID。
void EvrRtxSemaphoreDestroyed | ( | osSemaphoreId_t | semaphore_id | ) |
参数
[in] | semaphore_id | osSemaphoreNew 获得的信号量 ID。 |
当函数 osSemaphoreDelete 成功删除信号量对象时,将生成事件 SemaphoreDestroyed。
事件记录器中的值显示:
- semaphore_id : 信号量 ID。