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

内存池函数

事件功能

内存池函数生成的事件。更多...

函数

void EvrRtxMemoryPoolError (osMemoryPoolId_t mp_id, int32_t status)
 内存池错误事件(错误)更多...
 
void EvrRtxMemoryPoolNew (uint32_t block_count, uint32_t block_size, const osMemoryPoolAttr_t *attr)
 内存池上的事件创建和初始化(API)更多...
 
void EvrRtxMemoryPoolCreated (osMemoryPoolId_t mp_id, const char *name)
 成功的内存池创建事件(Op)更多...
 
void EvrRtxMemoryPoolGetName (osMemoryPoolId_t mp_id, const char *name)
 内存池名称检索(API)上的事件 更多...
 
void EvrRtxMemoryPoolAlloc (osMemoryPoolId_t mp_id, uint32_t timeout)
 内存池分配事件(API)更多...
 
void EvrRtxMemoryPoolAllocPending (osMemoryPoolId_t mp_id, uint32_t timeout)
 待处理内存池分配事件(Op)更多...
 
void EvrRtxMemoryPoolAllocTimeout (osMemoryPoolId_t mp_id)
 内存池分配超时事件(Op)更多...
 
void EvrRtxMemoryPoolAllocated (osMemoryPoolId_t mp_id, void *block)
 内存池分配成功的事件(Op)更多...
 
void EvrRtxMemoryPoolAllocFailed (osMemoryPoolId_t mp_id)
 不成功的内存池分配事件(Op)更多...
 
void EvrRtxMemoryPoolFree (osMemoryPoolId_t mp_id, void *block)
 免费内存池事件(API)更多...
 
void EvrRtxMemoryPoolDeallocated (osMemoryPoolId_t mp_id, void *block)
 成功内存池免费活动(Op)更多...
 
void EvrRtxMemoryPoolFreeFailed (osMemoryPoolId_t mp_id, void *block)
 不成功的内存池免费事件(Op)更多...
 
void EvrRtxMemoryPoolGetCapacity (osMemoryPoolId_t mp_id, uint32_t capacity)
 内存池容量检索事件(API)更多...
 
void EvrRtxMemoryPoolGetBlockSize (osMemoryPoolId_t mp_id, uint32_t block_size)
 内存池块大小检索事件(API)更多...
 
void EvrRtxMemoryPoolGetCount (osMemoryPoolId_t mp_id, uint32_t count)
 所使用的内存池块事件检索(API)更多...
 
void EvrRtxMemoryPoolGetSpace (osMemoryPoolId_t mp_id, uint32_t space)
 可用内存池块上的事件检索(API)更多...
 
void EvrRtxMemoryPoolDelete (osMemoryPoolId_t mp_id)
 内存池删除事件(API)更多...
 
void EvrRtxMemoryPoolDestroyed (osMemoryPoolId_t mp_id)
 成功内存池删除事件(Op)更多...
 

 

描述

函数文档

void EvrRtxMemoryPoolError(osMemoryPoolId_t mp_id,
  int32_t status 
 )  

参数

[in]mp_id通过 osMemoryPoolNew 获取的内存池 ID 或 ID 未知时的 NULL。
[in]status扩展执行状态。

当内存池例程由于错误而完成执行时,将生成事件 MemoryPoolError

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

事件记录器中的值显示:

  • mp_id : 内存池 ID。
  • status : 执行状态代码。

 

void EvrRtxMemoryPoolNew(uint32_t block_count,
  uint32_t block_size,
  const osMemoryPoolAttr_tattr 
 )  

参数

[in]block_count内存池中的最大内存块数。
[in]block_size内存块大小,以字节为单位。
[in]attr内存池属性; NULL:默认值。

调用函数 osMemoryPoolNew 时会生成事件 MemoryPoolNew

事件记录器中的值显示:

  • block_count : 内存池中的最大内存块数。
  • block_size : 内存块大小,以字节为单位。
  • attr : 内存池属性的内存地址,如果未指定,则为 0。

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

 

void EvrRtxMemoryPoolCreated(osMemoryPoolId_t mp_id,
  const char * name 
 )  

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。
[in]name指向内存池对象名称的指针。

当函数 osMemoryPoolNew 成功创建内存池对象时,将生成事件 MemoryPoolCreated

事件记录器中的值显示:

  • mp_id : 内存池 ID。

 

void EvrRtxMemoryPoolGetName(osMemoryPoolId_t mp_id,
  const char * name 
 )  

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。
[in]name指向内存池对象名称的指针。

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

事件记录器中的值显示:

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

 

void EvrRtxMemoryPoolAlloc(osMemoryPoolId_t mp_id,
  uint32_t timeout 
 )  

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。
[in]timeout超时值,如果没有超时,则为 0。

调用函数 osMemoryPoolAlloc 时会生成 MemoryPoolAlloc 事件。

事件记录器中的值显示:

  • mp_id : 内存池 ID。
  • timeout : 超时值。

 

void EvrRtxMemoryPoolAllocPending(osMemoryPoolId_t mp_id,
  uint32_t timeout 
 )  

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。
[in]timeout超时值,如果没有超时,则为 0。

当函数 osMemoryPoolAlloc 阻塞当前正在运行的线程并等待内存块变为可用时,将生成事件 MemoryPoolAllocPending

事件记录器中的值显示:

  • mp_id : 内存池 ID。
  • timeout : 超时值。

 

void EvrRtxMemoryPoolAllocTimeout(osMemoryPoolId_t mp_id) 

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。

等待内存池变为可用时生成的事件 MemoryPoolAllocTimeout 由于等待超时过期而中止。

事件记录器中的值显示:

  • mp_id : 内存池 ID。

 

void EvrRtxMemoryPoolAllocated(osMemoryPoolId_t mp_id,
  void * block 
 )  

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。
[in]block已分配内存块的地址。

当函数 osMemoryPoolAlloc 成功分配内存块时,将生成 MemoryPoolAllocated 事件。

事件记录器中的值显示:

  • mp_id : 内存池 ID。
  • block : 分配的内存块的内存地址。

 

void EvrRtxMemoryPoolAllocFailed(osMemoryPoolId_t mp_id) 

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。

当函数 osMemoryPoolAlloc 由于可用内存不足而无法分配内存块时,将生成事件 MemoryPoolAllocFailed

事件记录器中的值显示:

  • mp_id : 内存池 ID。

 

void EvrRtxMemoryPoolFree(osMemoryPoolId_t mp_id,
  void * block 
 )  

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。
[in]block要返回到内存池的已分配内存块的地址。

调用函数 osMemoryPoolFree 时会生成事件 MemoryPoolFree

事件记录器中的值显示:

  • mp_id : 内存池 ID。
  • block : 要返回到内存池的内存块的内存地址。

 

void EvrRtxMemoryPoolDeallocated(osMemoryPoolId_t mp_id,
  void * block 
 )  

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。
[in]block要返回到内存池的已分配内存块的地址。

当函数 osMemoryPoolFree 成功释放内存块时,将生成 MemoryPoolDeallocated 事件。

事件记录器中的值显示:

  • mp_id : 内存池 ID。
  • block : 返回内存池的内存块的内存地址。

 

void EvrRtxMemoryPoolFreeFailed(osMemoryPoolId_t mp_id,
  void * block 
 )  

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。
[in]block要返回到内存池的已分配内存块的地址。

当函数 osMemoryPoolFree 无法释放内存块时,将生成事件 MemoryPoolFreeFailed

事件记录器中的值显示:

  • mp_id : 内存池 ID。
  • block : 要返回到内存池的内存块的内存地址。

 

void EvrRtxMemoryPoolGetCapacity(osMemoryPoolId_t mp_id,
  uint32_t capacity 
 )  

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。
[in]capacity最大内存块数。

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

事件记录器中的值显示:

  • mp_id : 内存池 ID。
  • capacity : 检索到的最大内存块数(如果发生故障,则为 0)。

 

void EvrRtxMemoryPoolGetBlockSize(osMemoryPoolId_t mp_id,
  uint32_t block_size 
 )  

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。
[in]block_size内存块大小,以字节为单位。

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

事件记录器中的值显示:

  • mp_id : 内存池 ID。
  • block_size : 检索内存块大小(以字节为单位)(如果发生故障,则为 0)。

 

void EvrRtxMemoryPoolGetCount(osMemoryPoolId_t mp_id,
  uint32_t count 
 )  

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。
[in]count使用的内存块数。

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

事件记录器中的值显示:

  • mp_id : 内存池 ID。
  • count : 检索到的内存块数量(如果发生故障则为 0)。

 

void EvrRtxMemoryPoolGetSpace(osMemoryPoolId_t mp_id,
  uint32_t space 
 )  

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。
[in]space可用的内存块数。

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

事件记录器中的值显示:

  • mp_id : 内存池 ID。
  • space : 检索到的可用内存块数(如果发生故障,则为 0)。

 

void EvrRtxMemoryPoolDelete(osMemoryPoolId_t mp_id) 

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。

调用函数 osMemoryPoolDelete 时会生成事件 MemoryPoolDelete

事件记录器中的值显示:

  • mp_id : 内存池 ID。

 

void EvrRtxMemoryPoolDestroyed(osMemoryPoolId_t mp_id) 

参数

[in]mp_idosMemoryPoolNew 获取的内存池 ID。

当函数 osMemoryPoolDelete 成功删除内存池对象时,将生成事件 MemoryPoolDestroyed

事件记录器中的值显示:

  • mp_id : 内存池 ID。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值