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。

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