57 uint32_t i, u32Reg, timeout;
62 for (i = 0; i < 4; i++)
76 *u32RndNum |= ((
TRNG->DATA & 0xff) << i*8);
93 uint32_t i, u32Reg, timeout;
97 for (i = 0; i < i32Len/8; i++)
111 u8BigNum[i] = (
TRNG->DATA & 0xff);
127 uint32_t i, idx, u32Reg, timeout;
132 for (i = 0; i < i32Len/8; i++)
146 data = (
TRNG->DATA & 0xff);
149 cBigNumHex[idx++] = ((data >> 4) & 0xf) - 10 +
'A';
151 cBigNumHex[idx++] = ((data >> 4) & 0xf) +
'0';
155 cBigNumHex[idx++] = data - 10 +
'A';
157 cBigNumHex[idx++] = data +
'0';
#define TRNG_CTL_READY_Msk
#define SYS_IPRST1_TRNGRST_Msk
void TRNG_Open(void)
Initialize TRNG hardware.
NuMicro peripheral access layer header file.
#define TRNG_CTL_DVIF_Msk
int32_t TRNG_GenWord(uint32_t *u32RndNum)
Generate a 32-bits random number word.
int32_t TRNG_GenBignumHex(char cBigNumHex[], int32_t i32Len)
Generate a big number in hex format.
#define TRNG_CTL_TRNGEN_Msk
uint32_t CLK_GetHCLKFreq(void)
Get HCLK frequency.
int32_t TRNG_GenBignum(uint8_t u8BigNum[], int32_t i32Len)
Generate a big number in binary format.