bf0_hal_mailbox.h
Header file of Mailbox HAL module.
- Author
Sifli software development team
- Attention
Defines
-
MAILBOX_CHANNEL_1
-
MAILBOX_CHANNEL_2
-
MAILBOX_CHANNEL_3
-
MAILBOX_CHANNEL_4
-
MAILBOX_CHANNEL_5
-
MAILBOX_CHANNEL_6
-
MAILBOX_CHANNEL_7
-
MAILBOX_CHANNEL_8
-
MAILBOX_CHANNEL_9
-
MAILBOX_CHANNEL_10
-
MAILBOX_CHANNEL_11
-
MAILBOX_CHANNEL_12
-
MAILBOX_CHANNEL_13
-
MAILBOX_CHANNEL_14
-
MAILBOX_CHANNEL_15
-
MAILBOX_CHANNEL_16
-
HMUTEX_CHANNLE_NUM
-
LMUTEX_CHANNLE_NUM
-
MAILBOX_C1EXR_EX
-
MAILBOX_C2EXR_ID_Pos
-
MAILBOX_C2EXR_ID_Msk
-
MAILBOX_C2EXR_ID
-
MAILBOX_C1IER_INT0_Msk
-
MAILBOX_C1ITR_INT0_Msk
-
__HAL_MAILBOX_MASK_CHANNEL_IT(__HANDLE__, __CHINDEX__)
Mask the specified interrupt.
- 参数:
__HANDLE__ – specifies the MAILBOX Handle
__CHINDEX__ – specifies the channels number: This parameter can be one of the following values (MAILBOX Channel):
MAILBOX_CHANNEL_1: MAILBOX Channel 1
MAILBOX_CHANNEL_2: MAILBOX Channel 2
MAILBOX_CHANNEL_3: MAILBOX Channel 3
MAILBOX_CHANNEL_4: MAILBOX Channel 4
MAILBOX_CHANNEL_5: MAILBOX Channel 5
MAILBOX_CHANNEL_6: MAILBOX Channel 6
-
__HAL_MAILBOX_UNMASK_CHANNEL_IT(__HANDLE__, __CHINDEX__)
Unmask the specified interrupt.
- 参数:
__HANDLE__ – specifies the MAILBOX Handle
__CHINDEX__ – specifies the channels number: This parameter can be one of the following values (MAILBOX Channel):
MAILBOX_CHANNEL_1: MAILBOX Channel 1
MAILBOX_CHANNEL_2: MAILBOX Channel 2
MAILBOX_CHANNEL_3: MAILBOX Channel 3
MAILBOX_CHANNEL_4: MAILBOX Channel 4
MAILBOX_CHANNEL_5: MAILBOX Channel 5
MAILBOX_CHANNEL_6: MAILBOX Channel 6
-
__HAL_MAILBOX_TRIGGER_CHANNEL_IT(__HANDLE__, __CHINDEX__)
Trigger the specified interrupt.
- 参数:
__HANDLE__ – specifies the MAILBOX Handle
__CHINDEX__ – specifies the channels number : This parameter can be one of the following values (MAILBOX Channel):
MAILBOX_CHANNEL_1: MAILBOX Channel 1
MAILBOX_CHANNEL_2: MAILBOX Channel 2
MAILBOX_CHANNEL_3: MAILBOX Channel 3
MAILBOX_CHANNEL_4: MAILBOX Channel 4
MAILBOX_CHANNEL_5: MAILBOX Channel 5
MAILBOX_CHANNEL_6: MAILBOX Channel 6
-
__HAL_MAILBOX_CHECK_CHANNEL_IT(__HANDLE__, __CHINDEX__)
Check whether interrupt has been handled.
- 参数:
__HANDLE__ – specifies the MAILBOX Handle
__CHINDEX__ – specifies the channels number : This parameter can be one of the following values (MAILBOX Channel):
MAILBOX_CHANNEL_1: MAILBOX Channel 1
MAILBOX_CHANNEL_2: MAILBOX Channel 2
MAILBOX_CHANNEL_3: MAILBOX Channel 3
MAILBOX_CHANNEL_4: MAILBOX Channel 4
MAILBOX_CHANNEL_5: MAILBOX Channel 5
MAILBOX_CHANNEL_6: MAILBOX Channel 6
- 返回值:
0 – interrupt has been handled
others – interrupt has not been handled
-
__HAL_MAILBOX_CLEAR_CHANNEL_IT(__HANDLE__, __CHINDEX__)
Clear the specified interrupt.
- 参数:
__HANDLE__ – specifies the MAILBOX Handle
__CHINDEX__ – specifies the channels number : This parameter can be one of the following values (MAILBOX Channel):
MAILBOX_CHANNEL_1: MAILBOX Channel 1
MAILBOX_CHANNEL_2: MAILBOX Channel 2
MAILBOX_CHANNEL_3: MAILBOX Channel 3
MAILBOX_CHANNEL_4: MAILBOX Channel 4
MAILBOX_CHANNEL_5: MAILBOX Channel 5
MAILBOX_CHANNEL_6: MAILBOX Channel 6
-
__HAL_MAILBOX_GET_STATUS(__HANDLE__)
get the masked ISR status
- 参数:
__HANDLE__ – specifies the MAILBOX Handle
- 返回值:
masked – ISR status, uint32_t type
-
__HAL_MAILBOX_CLEAR_STATUS(__HANDLE__, __STATUS__)
clear the ISR status
- 参数:
__HANDLE__ – specifies the MAILBOX Handle
__STATUS__ – status value to be cleared
Typedefs
-
typedef MAILBOX_CH_TypeDef MUTEX_CH_TypeDef
-
typedef struct __MAILBOX_HandleTypeDef MAILBOX_HandleTypeDef
MAILBOX handle structure definition.
-
typedef struct __MUTEX_HandleTypeDef MUTEX_HandleTypeDef
MUTEX handle structure definition.
Enums
-
enum HAL_MAILBOX_StateTypeDef
HAL MAILBOX State structures definition.
Values:
-
enumerator HAL_MAILBOX_STATE_RESET
MAILBOX not yet initialized or disabled
-
enumerator HAL_MAILBOX_STATE_READY
MAILBOX initialized and ready for use
-
enumerator HAL_MAILBOX_STATE_BUSY
MAILBOX internal processing is ongoing
-
enumerator HAL_MAILBOX_STATE_RESET
-
enum MUTEX_LockCoreIdTypeDef
MUTEX channel status structure definition.
Values:
-
enumerator MUTEX_UNLOCKED
MUTEX is not locked
-
enumerator MUTEX_HCPU_LOCKED
MUTEX is locked by HCPU
-
enumerator MUTEX_LCPU_LOCKED
MUTEX is locked by LCPU
-
enumerator MUTEX_BCPU_LOCKED
MUTEX is locked by BCPU
-
enumerator MUTEX_LOCK_CORE_INVALID
-
enumerator MUTEX_UNLOCKED
Functions
-
HAL_StatusTypeDef HAL_MAILBOX_Init(MAILBOX_HandleTypeDef *hmailbox)
Initialize the MAILBOX peripheral.
- 参数:
hmailbox – MAILBOX handle
- 返回值:
HAL – status
-
HAL_StatusTypeDef HAL_MAILBOX_DeInit(MAILBOX_HandleTypeDef *hmailbox)
DeInitialize the MAILBOX peripheral.
- 参数:
hmailbox – MAILBOX handle
- 返回值:
HAL – status
-
void HAL_MAILBOX_MspInit(MAILBOX_HandleTypeDef *hmailbox)
Initialize the MAILBOX MSP.
- 参数:
hmailbox – MAILBOX handle
- 返回值:
None –
-
void HAL_MAILBOX_MspDeInit(MAILBOX_HandleTypeDef *hmailbox)
MAILBOX MSP DeInit.
- 参数:
hmailbox – MAILBOX handle
- 返回值:
None –
-
HAL_MAILBOX_StateTypeDef HAL_MAILBOX_GetState(MAILBOX_HandleTypeDef const *const hmailbox)
Return the MAILBOX handle state.
- 参数:
hmailbox – MAILBOX handle
- 返回值:
MAILBOX – handle state
-
MUTEX_LockCoreIdTypeDef HAL_MAILBOX_Lock(MUTEX_HandleTypeDef const *const hmutex, uint8_t ch_id)
Lock mutex.
- 参数:
hmutex – mutex handle
ch_id – channel id, range, 0~1, it’s used if mutex instance is not specified
- 返回值:
0 – lock succeed, >0: lock fail, core
-
MUTEX_LockCoreIdTypeDef HAL_MAILBOX_LockEx(MUTEX_HandleTypeDef const *const hmutex, uint8_t ch_id, uint32_t timeout_ms)
Lock mutex advanced version.
- 参数:
hmutex – mutex handle
ch_id – channel id, range, 0~1, it’s used if mutex instance is not specified
timeout_ms – time out value in ms.
- 返回值:
0 – lock succeed, >0: lock fail, core
-
MUTEX_CH_TypeDef *HAL_MAILBOX_GetMutex(uint8_t core_id, uint8_t ch_id)
Get mutex based on CPU core and channel.
- 参数:
core_id – core ID, CORE_ID_HCPU/CORE_ID_LCPU/CORE_ID_BCPU
ch_id – channel id, range, 0~1, it’s used if mutex instance is not specified
- 返回值:
Mutex – handle if successful, NULL if failed.
-
void HAL_MAILBOX_UnLock(MUTEX_HandleTypeDef const *const hmutex, uint8_t ch_id)
Unlock mutex.
- 参数:
hmutex – mutex handle
ch_id – channel id, range, 0~1, it’s used if mutex instance is not specified
- 返回值:
void –
-
void HAL_MAILBOX_IRQHandler(MAILBOX_HandleTypeDef *hmailbox)
mailbox irq handler
- 参数:
hmailbox – [in] mailbox handle
-
struct MAILBOX_CH_TypeDef
-
struct __MAILBOX_HandleTypeDef
- #include <bf0_hal_mailbox.h>
MAILBOX handle structure definition.
Public Members
-
MAILBOX_CH_TypeDef *Instance
MAILBOX registers base address
-
HAL_MAILBOX_StateTypeDef State
MAILBOX State: initialized or not
-
void (*NotificationCallback)(struct __MAILBOX_HandleTypeDef *hmailbox, uint8_t ch_idx)
notification callback
- Param hmailbox:
[in] mailbox handle
- Param [in:
ch_idx channel index, starting from 0, refer to MAILBOX Channel
-
MAILBOX_CH_TypeDef *Instance
-
struct __MUTEX_HandleTypeDef
- #include <bf0_hal_mailbox.h>
MUTEX handle structure definition.
Public Members
-
MUTEX_CH_TypeDef *Instance
MAILBOX registers base address
-
MUTEX_CH_TypeDef *Instance