CMSIS-RTOS2 文檔翻譯 之 參考(RTX5 特定的 API 之 事件功能(互斥函數))

互斥函數

事件功能

互斥函數生成的事件。更多...

函數

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