互斥函数
事件功能
互斥函数生成的事件。更多...
函数 | |
void | EvrRtxMutexError (osMutexId_t mutex_id, int32_t status) |
互斥错误事件(错误)更多... | |
void | EvrRtxMutexNew (const osMutexAttr_t *attr) |
互斥体上的事件创建和初始化(API)更多... | |
void | EvrRtxMutexCreated (osMutexId_t mutex_id, const char *name) |
成功互斥的活动创造(Op)更多... | |
void | EvrRtxMutexGetName (osMutexId_t mutex_id, const char *name) |
互斥锁名称检索(API)上的事件 更多... | |
void | EvrRtxMutexAcquire (osMutexId_t mutex_id, uint32_t timeout) |
关于互斥锁获取的事件(API)更多... | |
void | EvrRtxMutexAcquirePending (osMutexId_t mutex_id, uint32_t timeout) |
挂起互斥的事件获得(Op)更多... | |
void | EvrRtxMutexAcquireTimeout (osMutexId_t mutex_id) |
互斥锁上的事件获取超时(Op)更多... | |
void | EvrRtxMutexAcquired (osMutexId_t mutex_id, uint32_t lock) |
成功互斥的事件获得(Op)更多... | |
void | EvrRtxMutexNotAcquired (osMutexId_t mutex_id) |
不成功互斥的事件获得(Op)更多... | |
void | EvrRtxMutexRelease (osMutexId_t mutex_id) |
关于互斥发布(API)的事件 更多... | |
void | EvrRtxMutexReleased (osMutexId_t mutex_id, uint32_t lock) |
成功互斥发布活动(Op)更多... | |
void | EvrRtxMutexGetOwner (osMutexId_t mutex_id, osThreadId_t thread_id) |
互斥锁所有者检索(API)上的事件 更多... | |
void | EvrRtxMutexDelete (osMutexId_t mutex_id) |
互斥删除(API)上的事件 更多... | |
void | EvrRtxMutexDestroyed (osMutexId_t mutex_id) |
成功互斥删除事件(Op)更多... | |
描述
函数文档
void EvrRtxMutexError | ( | osMutexId_t | mutex_id, |
int32_t | status | ||
) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID 或 ID 未知时为 NULL。 |
[in] | status | 扩展执行状态。 |
当互斥管理例程由于错误而完成执行时,会生成事件 MutexError。
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 | 安全上下文保存失败。 |
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。
- status : 执行状态代码。
void EvrRtxMutexNew | ( | const osMutexAttr_t * | attr | ) |
参数
[in] | attr | 互斥属性。 |
调用函数 osMutexNew 时会生成事件 MutexNew。
事件记录器中的值显示:
- attr : 互斥锁属性的内存地址,如果未指定,则为 0。
如果在 API 调用中提供了互斥锁属性,则它们也会在事件记录器中详细说明。
void EvrRtxMutexCreated | ( | osMutexId_t | mutex_id, |
const char * | name | ||
) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID。 |
[in] | name | 指向互斥对象名称的指针。 |
当函数 osMutexNew 成功创建互斥对象时,将生成事件 MutexCreated。
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。
void EvrRtxMutexGetName | ( | osMutexId_t | mutex_id, |
const char * | name | ||
) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID。 |
[in] | name | 指向互斥对象名称的指针。 |
调用函数 osMutexGetName 并且其执行结果已知时,将生成事件 MutexGetName。
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。
- name : 检索名称字符串的内存地址(如果发生故障,则为 0)。
void EvrRtxMutexAcquire | ( | osMutexId_t | mutex_id, |
uint32_t | timeout | ||
) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID。 |
[in] | timeout | 超时值,如果没有超时,则为 0。 |
调用函数 osMutexAcquire 时会生成事件 MutexAcquire。
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。
- timeout : 超时值。
void EvrRtxMutexAcquirePending | ( | osMutexId_t | mutex_id, |
uint32_t | timeout | ||
) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID。 |
[in] | timeout | 超时值,如果没有超时,则为 0。 |
当函数 osMutexAcquire 阻止当前正在运行的线程并等待互斥锁变为可用时,将生成事件 MutexAcquirePending。
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。
- timeout : 超时值。
void EvrRtxMutexAcquireTimeout | ( | osMutexId_t | mutex_id | ) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID。 |
等待互斥锁变为可用时生成的事件 MutexAcquireTimeout 由于等待超时过期而中止。
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。
void EvrRtxMutexAcquired | ( | osMutexId_t | mutex_id, |
uint32_t | lock | ||
) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID。 |
[in] | lock | 当前锁定互斥锁对象的次数。 |
当函数 osMutexAcquire 成功获取互斥锁时,将生成事件 MutexAcquired。
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。
- lock : 当前锁定计数器状态。
void EvrRtxMutexNotAcquired | ( | osMutexId_t | mutex_id | ) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID。 |
当函数 osMutexAcquire 在没有超时的情况下返回并且未获取互斥锁时,将生成事件 MutexNotAcquired。
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。
void EvrRtxMutexRelease | ( | osMutexId_t | mutex_id | ) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID。 |
调用函数 osMutexRelease 时会生成事件 MutexRelease。
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。
void EvrRtxMutexReleased | ( | osMutexId_t | mutex_id, |
uint32_t | lock | ||
) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID。 |
[in] | lock | 当前锁定互斥锁对象的次数。 |
当函数 osMutexRelease 成功释放互斥锁时,会生成事件 MutexReleased。
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。
- lock : 当前锁定计数器状态。
void EvrRtxMutexGetOwner | ( | osMutexId_t | mutex_id, |
osThreadId_t | thread_id | ||
) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID。 |
[in] | thread_id | osThreadNew 或 osThreadGetId 获取的线程 ID。 |
当调用函数 osMutexGetOwner 并且其执行结果已知时,将生成事件 MutexGetOwner。
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。
- thread_id : 检索所有者线程 ID(如果发生故障或未锁定互斥锁,则为 0)
void EvrRtxMutexDelete | ( | osMutexId_t | mutex_id | ) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID。 |
调用函数 osMutexDelete 时会生成事件 MutexDelete。
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。
void EvrRtxMutexDestroyed | ( | osMutexId_t | mutex_id | ) |
参数
[in] | mutex_id | osMutexNew 获取的互斥锁 ID。 |
当函数 osMutexDelete 成功删除互斥锁对象时,将生成事件 MutexDestroyed。
事件记录器中的值显示:
- mutex_id : 互斥锁 ID。