你好,
如何调用trng_acquire函数对吧?
我不知道这个地址在哪里uint8_t * sram_puf。
是否有任何演示申请或参考实施?
/** **************************************************************************************** * @ 短暂的使用未初始化的内存数据获得128个随机位。* * @param[out] trng_bits_ptr指向存储随机数据的缓冲区。* @note它的地址必须对齐到32位。* @param[in] sram_puf指向未初始化SRAM区域的基址。* @note它的地址必须对齐到32位。* @param[in] sram_puf_blocks使用的16字节块的数量(最少28个)。* @return状态代码 **************************************************************************************** */ uint8_t trng_acquire (uint8_t * trng_bits_ptr uint8_t * sram_puf, const uint16_t sram_puf_blocks);
关键词:
设备:
嗨Firefox2005
请检查init_rand_seed_from_trng(),它调用trng_acquire()。没有这样的例子,但是为什么不使用init_rand_seed_from_trng()来使用从TRNG获得的随机位初始化随机数生成器种子呢?trng_aquire()的目的是生成随机函数。
谢谢,PM_Dialog
你好,
所以我误解了它的功能…
那样的话,我只能init_rand_seed_from_trng ();并使用生成的随机值来初始化srand(trng_state_val);功能和调查某些随机数rand ();
但我总是得到相同的随机数反复,如果我重新启动相同的固件构建。我认为这是不对的。
我什么时候必须重新初始化init_rand_seed_from_trng ();一遍吗?
为什么是trng_aquire(…)功能不是静态,如果我不必在trng.c中使用它?
到目前为止谢谢你
你好,
你得到的随机数是多少?你能分享一下结果吗?
谢谢,PM_Dialog
我总是得到相同的输出,如果我重新加载和启动固件。我不应该这么认为。
代码:
控制台输出:
你好,
谢谢你的建议。让我检查一下提供的代码片段,稍后再回复给您。
谢谢,PM_Dialog
你好,
很抱歉给你们带来了困惑。如果在da1458x_config_advanced.h中定义了CFG_TRNG宏,那么SDK会自动调用init_rand_seed_from_trng()。请检查arch_system.c文件中的第1324行。这意味着SDK将自动初始化随机数生成器种子。如果您想生成随机数,您应该只使用rand()函数。
谢谢,PM_Dialog