bf0_hal_rng.h
FLASH HAL module driver.
- Author
Sifli software development team
Defines
-
RNG_IT_SEED
Random seed generation done raw interrupt
-
RNG_IT_RAND
Random number available raw interrupt
-
RNG_IT_LOCK
prng lockup raw interrupt
-
RNG_FLAG_RAND_VALID
Random number valid flag
-
RNG_FLAG_RAND_BUSY
Random number engine busy flag
-
RNG_FLAG_SEED_VALID
Random seed valid flag
-
RNG_FLAG_SEED_BUSY
Random seed engine busy flag
-
RNG_CMD_SEED
Generate random seed
-
RNG_CMD_RAND
Generate random data
-
HAL_RNG_ERROR_NONE
No error
-
__HAL_RNG_RESET_HANDLE_STATE(__HANDLE__)
Reset RNG handle state.
- 参数:
__HANDLE__ – RNG Handle
- 返回值:
None –
-
__HAL_RNG_COMMAND(__HANDLE__, CMD)
RNG module command.
- 参数:
__HANDLE__ – RNG Handle
CMD – RNG command This parameter can be one of the following values:
RNG_CMD_RAND: Generate Random number
RNG_CMD_SEED : Generate Random seed
- 返回值:
None –
-
__HAL_RNG_ENABLE(__HANDLE__)
Enable the RNG peripheral.
- 参数:
__HANDLE__ – RNG Handle
- 返回值:
None –
-
__HAL_RNG_DISABLE(__HANDLE__)
Disable the RNG peripheral.
- 参数:
__HANDLE__ – RNG Handle
- 返回值:
None –
-
__HAL_RNG_GET_FLAG(__HANDLE__, __FLAG__)
Check whether the specified RNG flag is set or not.
- 参数:
__HANDLE__ – RNG Handle
__FLAG__ – RNG flag This parameter can be one of the following values:
RNG_FLAG_RAND_VALID: Random number valid flag
RNG_FLAG_RAND_BUSY : Random number engine busy flag
RNG_FLAG_SEED_VALID: Random seed valid flag
RNG_FLAG_SEED_BUSY : Random seed engine busy flag
- 返回值:
The – new state of FLAG (SET or RESET).
-
__HAL_RNG_CLEAR_FLAG(__HANDLE__, __FLAG__)
Clear the selected RNG flag status.
备注
WARNING: This is a dummy macro for HAL code alignment, flags RNG_FLAG_XXXX are read-only.
- 参数:
__HANDLE__ – RNG handle
__FLAG__ – RNG flag to clear
- 返回值:
None –
-
__HAL_RNG_ENABLE_IT(__HANDLE__)
Enable the RNG interrupt.
- 参数:
__HANDLE__ – RNG Handle
- 返回值:
None –
-
__HAL_RNG_DISABLE_IT(__HANDLE__)
Disable the RNG interrupt.
- 参数:
__HANDLE__ – RNG Handle
- 返回值:
None –
-
__HAL_RNG_GET_IT(__HANDLE__, __INTERRUPT__)
Check whether the specified RNG interrupt has occurred or not.
- 参数:
__HANDLE__ – RNG Handle
__INTERRUPT__ – specifies the RNG interrupt status flag to check. This parameter can be one of the following values:
RNG_IT_SEED : Random seed generation done raw interrupt
RNG_IT_RAND : Random number available raw interrupt
RNG_IT_LOCK : prng lockup raw interrupt
- 返回值:
The – new state of __INTERRUPT__ (SET or RESET).
-
__HAL_RNG_CLEAR_IT(__HANDLE__, __INTERRUPT__)
Clear the RNG interrupt status flags.
- 参数:
__HANDLE__ – RNG Handle
__INTERRUPT__ – specifies the RNG interrupt status flag to clear. This parameter can be one of the following values:
RNG_IT_SEED : Random seed generation done raw interrupt
RNG_IT_RAND : Random number available raw interrupt
RNG_IT_LOCK : prng lockup raw interrupt
- 返回值:
None –
-
HAL_RNG_GenerateRandomNumber(hrng, random32bit)
-
HAL_RNG_GenerateRandomNumber_IT(hrng, random32bit)
-
HAL_RNG_GenerateRandomSeed(hrng, seed32bit)
-
HAL_RNG_GenerateRandomSeed_IT(hrng, seed32bit)
-
IS_RNG_ALL_INSTANCE(__INSTANCE__)
Typedefs
-
typedef struct __RNG_HandleTypeDef RNG_HandleTypeDef
RNG Handle Structure definition.
Enums
-
enum HAL_RNG_StateTypeDef
RNG HAL State Structure definition.
Values:
-
enumerator HAL_RNG_STATE_RESET
RNG not yet initialized or disabled
-
enumerator HAL_RNG_STATE_READY
RNG initialized and ready for use
-
enumerator HAL_RNG_STATE_BUSY
RNG internal process is ongoing
-
enumerator HAL_RNG_STATE_TIMEOUT
RNG timeout state
-
enumerator HAL_RNG_STATE_ERROR
RNG error state
-
enumerator HAL_RNG_STATE_RESET
Functions
-
HAL_StatusTypeDef HAL_RNG_Init(RNG_HandleTypeDef *hrng)
Initialize the RNG peripheral and initialize the associated handle.
- 参数:
hrng – pointer to a RNG_HandleTypeDef structure.
- 返回值:
HAL – status
-
HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng)
DeInitialize the RNG peripheral.
- 参数:
hrng – pointer to a RNG_HandleTypeDef structure.
- 返回值:
HAL – status
-
void HAL_RNG_MspInit(RNG_HandleTypeDef *hrng)
Initialize the RNG MSP.
- 参数:
hrng – pointer to a RNG_HandleTypeDef structure.
- 返回值:
None –
-
void HAL_RNG_MspDeInit(RNG_HandleTypeDef *hrng)
DeInitialize the RNG MSP.
- 参数:
hrng – pointer to a RNG_HandleTypeDef structure.
- 返回值:
None –
-
uint32_t HAL_RNG_ReadLastRandomNumber(RNG_HandleTypeDef *hrng)
Read latest generated random number.
- 参数:
hrng – pointer to a RNG_HandleTypeDef structure.
- 返回值:
random – value
-
HAL_StatusTypeDef HAL_RNG_Generate(RNG_HandleTypeDef *hrng, uint32_t *random32bit, uint8_t is_seed)
Generate a 32-bit random number or seed.
备注
Each time the random number data is read the RNG_FLAG_DRDY flag is automatically cleared.
- 参数:
hrng – pointer to a RNG_HandleTypeDef structure.
random32bit – pointer to generated random number variable if successful.
is_seed – 1:generate seed. 0:Generate random number
- 返回值:
HAL – status
-
HAL_StatusTypeDef HAL_RNG_Generate_IT(RNG_HandleTypeDef *hrng, uint8_t is_seed)
Generate random number or seed in interrupt mode.
- 参数:
hrng – pointer to a RNG_HandleTypeDef structure.
is_seed – 1:generate seed. 0:Generate random number
- 返回值:
HAL – status
-
void HAL_RNG_IRQHandler(RNG_HandleTypeDef *hrng)
Handle RNG interrupt request.
备注
In the case of a clock error, the RNG is no more able to generate random numbers because the PLL48CLK clock is not correct. User has to check that the clock controller is correctly configured to provide the RNG clock and clear the CEIS bit using __HAL_RNG_CLEAR_IT(). The clock error has no impact on the previously generated random numbers, and the RNG_DR register contents can be used.
备注
In the case of a seed error, the generation of random numbers is interrupted as long as the SECS bit is ‘1’. If a number is available in the RNG_DR register, it must not be used because it may not have enough entropy. In this case, it is recommended to clear the SEIS bit using __HAL_RNG_CLEAR_IT(), then disable and enable the RNG peripheral to reinitialize and restart the RNG.
备注
RNG ErrorCallback() API is called once whether SEIS or CEIS are set.
- 参数:
hrng – pointer to a RNG_HandleTypeDef structure.
- 返回值:
None –
-
void HAL_RNG_RandReadyCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit)
Random Data Ready callback in non-blocking mode.
- 参数:
hrng – pointer to a RNG_HandleTypeDef structure.
random32bit – generated random value
- 返回值:
None –
-
void HAL_RNG_SeedReadyCallback(RNG_HandleTypeDef *hrng, uint32_t seed32bit)
Random Seed Ready callback in non-blocking mode.
- 参数:
hrng – pointer to a RNG_HandleTypeDef structure.
seed32bit – generated random seed
- 返回值:
None –
-
HAL_RNG_StateTypeDef HAL_RNG_GetState(RNG_HandleTypeDef *hrng)
Return the RNG handle state.
- 参数:
hrng – pointer to a RNG_HandleTypeDef structure.
- 返回值:
HAL – state
-
uint32_t HAL_RNG_GetError(RNG_HandleTypeDef *hrng)
Return the RNG handle error code.
- 参数:
hrng – pointer to a RNG_HandleTypeDef structure.
- 返回值:
RNG – Error Code
-
struct __RNG_HandleTypeDef
- #include <bf0_hal_rng.h>
RNG Handle Structure definition.