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_t attr 
  )    

参数

[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_id osMemoryPoolNew 获取的内存池 ID。
[in] name 指向内存池对象名称的指针。

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

事件记录器中的值显示:

  • mp_id : 内存池 ID。

 

void EvrRtxMemoryPoolGetName ( osMemoryPoolId_t  mp_id,
    const char *  name 
  )    

参数

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

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

事件记录器中的值显示:

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

 

void EvrRtxMemoryPoolAlloc ( osMemoryPoolId_t  mp_id,
    uint32_t  timeout 
  )    

参数

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

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

事件记录器中的值显示:

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

 

void EvrRtxMemoryPoolAllocPending ( osMemoryPoolId_t  mp_id,
    uint32_t  timeout 
  )    

参数

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

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

事件记录器中的值显示:

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

 

void EvrRtxMemoryPoolAllocTimeout ( osMemoryPoolId_t  mp_id )  

参数

[in] mp_id osMemoryPoolNew 获取的内存池 ID。

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

事件记录器中的值显示:

  • mp_id : 内存池 ID。

 

void EvrRtxMemoryPoolAllocated ( osMemoryPoolId_t  mp_id,
    void *  block 
  )    

参数

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

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

事件记录器中的值显示:

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

 

void EvrRtxMemoryPoolAllocFailed ( osMemoryPoolId_t  mp_id )  

参数

[in] mp_id osMemoryPoolNew 获取的内存池 ID。

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

事件记录器中的值显示:

  • mp_id : 内存池 ID。

 

void EvrRtxMemoryPoolFree ( osMemoryPoolId_t  mp_id,
    void *  block 
  )    

参数

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

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

事件记录器中的值显示:

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

 

void EvrRtxMemoryPoolDeallocated ( osMemoryPoolId_t  mp_id,
    void *  block 
  )    

参数

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

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

事件记录器中的值显示:

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

 

void EvrRtxMemoryPoolFreeFailed ( osMemoryPoolId_t  mp_id,
    void *  block 
  )    

参数

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

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

事件记录器中的值显示:

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

 

void EvrRtxMemoryPoolGetCapacity ( osMemoryPoolId_t  mp_id,
    uint32_t  capacity 
  )    

参数

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

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

事件记录器中的值显示:

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

 

void EvrRtxMemoryPoolGetBlockSize ( osMemoryPoolId_t  mp_id,
    uint32_t  block_size 
  )    

参数

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

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

事件记录器中的值显示:

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

 

void EvrRtxMemoryPoolGetCount ( osMemoryPoolId_t  mp_id,
    uint32_t  count 
  )    

参数

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

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

事件记录器中的值显示:

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

 

void EvrRtxMemoryPoolGetSpace ( osMemoryPoolId_t  mp_id,
    uint32_t  space 
  )    

参数

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

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

事件记录器中的值显示:

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

 

void EvrRtxMemoryPoolDelete ( osMemoryPoolId_t  mp_id )  

参数

[in] mp_id osMemoryPoolNew 获取的内存池 ID。

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

事件记录器中的值显示:

  • mp_id : 内存池 ID。

 

void EvrRtxMemoryPoolDestroyed ( osMemoryPoolId_t  mp_id )  

参数

[in] mp_id osMemoryPoolNew 获取的内存池 ID。

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

事件记录器中的值显示:

  • mp_id : 内存池 ID。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章