上海航芯 ACM32F070开发板+触控功能评估板 - 第四篇 HRNG模块及随机数生成时间测量
[复制链接]
本帖最后由 oxygen_sh 于 2022-10-26 22:54 编辑
本评测实验使用TRNG模块产生256bit随机数,并测量随机数生成时间。
根据芯片资料,HRNG模块内含可靠噪声振荡器,生成随机数符合国际和国密测试标准。
随机数生成函数HAL_HRNG_GetHrng()的执行时间,可以使用Systick来进行测量。具体见下面代码。
以下是实现代码:
void APP_Hrng_Test(void)
{
UINT32 i;
UINT32 j;
UINT32 tickcount;
printfS("---------HRNG test-------\n");
SysTick->VAL = 0UL;
HAL_HRNG_GetHrng(data_buf, 32);
tickcount = SysTick->VAL;
tickcount = 640000 - tickcount;
printfS("time used: %d us\r\n", tickcount/64);
for(i = 1; i < 32; i++)
{
printfS("%x", data_buf);
}
printfS("\r\n");
}
测试结果:主时钟频率64MHz条件下,随机数生成时间约为190us。
另外,每次生成时间会有几个us的差异。因关于HRNG的资料有限,不清楚是什么原因导致这个时间差异。
|