⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
7个帖子/ 0新
最后一篇
Firefox2005.
离线
最后一次露面:1个月3周前
加入:2016-04-13 09:36
TRNG DA14531.

你好,

如何调用trng_acquire.功能吧?

我不知道我在哪里得到地址uint8_t * sram_puf。

没有任何演示应用程序或参考实现吗?

/ ** **************************************************************************************** * @brief Acquires 128 random bits using uninitialized RAM data. * * @param[out] trng_bits_ptr Pointer to the buffer where random data will be stored. * @note Its address must be aligned to 32 bits. * @param[in] sram_puf Pointer to the base address of the uninitialized SRAM area. * @note Its address must be aligned to 32 bits. * @param[in] sram_puf_blocks Number of 16byte blocks to use (28 minimum). * @return Status code **************************************************************************************** */ uint8_t trng_acquire(uint8_t *trng_bits_ptr, uint8_t *sram_puf, const uint16_t sram_puf_blocks);

关键词:
设备:
PM_DIALOG.
离线
最后一次露面:3天15小时前
职员
加入:2018-02-08 11:03
嗨Firefox2005.

嗨Firefox2005.

请检查调用trng_acquire()的init_rand_seed_from_trng()。没有任何示例,但是为什么不使用init_rand_seed_from_trng()以使用从TRNG获取的随机位初始化随机数生成器种子?trng_aquire()的目的是为随机函数进行种子。

谢谢,PM_DIALOG.

Firefox2005.
离线
最后一次露面:1个月3周前
加入:2016-04-13 09:36
你好,

你好,

所以我错过了这个功能......

在这种情况下,我只需要init_rand_seed_from_trng();并使用生成的随机值初始化例如。这将srand (trng_state_val);函数并从中轮询一些随机数兰德();

但如果我重新启动相同的固件构建,我确实会在又一次地始终出现相同的随机数。我不认为这是正确的。

什么时候我必须重新初始化init_rand_seed_from_trng();再次?

为什么trng_aquire(...)函数比不静态如果我没有使用它的trng.c?

谢谢你到目前为止

PM_DIALOG.
离线
最后一次露面:3天15小时前
职员
加入:2018-02-08 11:03
你好呀,

你好呀,

你得到的随机数是多少?Coudl你可以分享结果吗?

谢谢,PM_DIALOG.

Firefox2005.
离线
最后一次露面:1个月3周前
加入:2016-04-13 09:36
我总是得到相同的产出

如果我重新加载并启动固件,我总是得到相同的输出。这不应该在我看来。

代码:

void user_app_init(void){ARCH_PRINTF(“\ r \ n \ r \ nuser_app_init \ r r \ n”);//使用从trng init_rand_seed_from_trng()获取的随机位初始化随机数生成器种子;// initionise标准c rand()函数使用trng随机数srand(trng_state_val);//测试:循环通过随机数生成器来测试随机数生成器......(UINT8_T i = 0; i <10; i ++){//获得AES-128键的16byte随机数(UINT8_T i = 0; i 

控制台输出:

user_app_init挑战d816f9d60c6c876abab0a74a11828fae CHALLENGE a832652ba76aa59c374db76d6cbcd48a CHALLENGE 2fd232c58303414c7a264221f0a8bc89 CHALLENGE a4e64f980420b48af8d631d962c4767e CHALLENGE b1740409a2f0c9b945cf4f9a8750e9ea CHALLENGE c694072749e4ce4764ce643001c7d134 CHALLENGE 756796e7a5a12e6129d5cae5a2d8d0df CHALLENGE 470e8f5c067b89b08aa309bf495c0c48 CHALLENGE 952486692eed4f8e7bace731b5cec0d4 CHALLENGE e3b460feaf935240c3918cd46146de34

PM_DIALOG.
离线
最后一次露面:3天15小时前
职员
加入:2018-02-08 11:03
你好呀,

你好呀,

谢谢你的意见。让我查看提供的代码片段,我会恢复潮流。

谢谢,PM_DIALOG.

PM_DIALOG.
离线
最后一次露面:3天15小时前
职员
加入:2018-02-08 11:03
你好呀,

你好呀,

我为混乱道歉。如果在da1458x_config_advanced.h中定义了cfg_trng宏,则SDK将自动调用init_rand_seed_from_trng()。请在ARCH_SYSTEM.C文件中检查第1324行。这意味着SDK将自动初始化随机数生成器种子。如果要生成随机数,则只需使用RAND()函数即可。

谢谢,PM_DIALOG.