14#define TIMEOUT_TRNG SystemCoreClock
67 uint32_t i, u32Reg, timeout;
72 for (i = 0; i < 4; i++)
86 *u32RndNum |= ((
TRNG->DATA & 0xff) << i*8);
103 uint32_t i, u32Reg, timeout;
107 for (i = 0; i < i32Len/8; i++)
121 u8BigNum[i] = (
TRNG->DATA & 0xff);
137 uint32_t i, idx, u32Reg, timeout;
142 for (i = 0; i < i32Len/8; i++)
156 data = (
TRNG->DATA & 0xff);
159 cBigNumHex[idx++] = ((data >> 4) & 0xf) - 10 +
'A';
161 cBigNumHex[idx++] = ((data >> 4) & 0xf) +
'0';
165 cBigNumHex[idx++] = data - 10 +
'A';
167 cBigNumHex[idx++] = data +
'0';
NuMicro peripheral access layer header file.
uint32_t CLK_GetHCLKFreq(void)
Get HCLK frequency.
#define TRNG_CTL_DVIF_Msk
#define SYS_IPRST1_TRNGRST_Msk
#define TRNG_CTL_TRNGEN_Msk
#define TRNG_CTL_READY_Msk
int32_t TRNG_GenWord(uint32_t *u32RndNum)
Generate a 32-bits random number word.
int32_t TRNG_GenBignum(uint8_t u8BigNum[], int32_t i32Len)
Generate a big number in binary format.
int32_t TRNG_GenBignumHex(char cBigNumHex[], int32_t i32Len)
Generate a big number in hex format.
int32_t TRNG_Open(void)
Initialize TRNG hardware.