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
