如果软件中每秒调用一次硬件随机数的接口获取随机数,这样会不会出问题
。软件可能每秒调用一次myCOM_generateRandomBytes()
/* Generate random bytes in the provided buffer up to size using the TRNG */
void myCOM_generateRandomBytes(void) {
int_fast16_t result;
// if (canTrigTrng)
// {
// return;
// }
// canTrigTrng = true;
/* Generate some randomness in the provided buffer */
// if (handleTrng)
{
result = TRNG_generateEntropy(handleTrng, &entropyKey);
if (result != TRNG_STATUS_SUCCESS) {
TRNG_close(handleTrng);
handleTrng = TRNG_open(Board_TRNG0, ¶mTrng);
if (!handleTrng) {
while (1)
;
}
}
}
// TRNG_close(handleTrng);
}
void init_generateRandom(uint8_t size)
{
TRNG_init();
CryptoKeyPlaintext_initBlankKey(&entropyKey, keyLocationBuffer, size);
TRNG_Params_init(¶mTrng);
paramTrng.returnBehavior = TRNG_RETURN_BEHAVIOR_CALLBACK;
paramTrng.callbackFxn = trng_callback;
paramTrng.timeout = SemaphoreP_WAIT_FOREVER;
/* Open a TRNG_Handle with default parameters */
handleTrng = TRNG_open(Board_TRNG0, ¶mTrng);
if (!handleTrng) {
while (1)
;
}
myCOM_generateRandomBytes();
}
Viki Shi:
这个倒是没有测试过,请问你想要实现的功能以及目前出现的问题是什么?
FreePom:
回复 Viki Shi:
按照我描述的那样去调用,调用一段时间后就会死机(串口那些也动不了,),在线仿真的时候跑了很久都没出现,但是单机跑的时候很容易出现
Viki Shi:
回复 FreePom:
收到,我看能不能让实验室复现问题,会尽快过来更新
FreePom:
回复 Viki Shi:
好的,非常感谢,578218949@qq.com,这是我的邮箱,有需要的话可以联系我
Viki Shi:
回复 FreePom:
对了,是否能提供一下SDK版本及所用例程?
FreePom:
回复 Viki Shi:
我有可嫩找到问题了,还在测试
Viki Shi:
回复 FreePom:
好的,如果找到原因,希望提供一下反馈,给后来人参考,谢谢:)
FreePom:
回复 Viki Shi:
你好,测试还有些问题,我测试了很多模块,同个程序,个别模块模块会出现死机,我分析应该还是卡在随机数触发这里TRNG_generateEntropy(handleTrng, &entropyKey);
请教个问题:1、CC1310的硬件随机数的种子哪里来的
2、哪些因素会影响这个硬件随机数的产生
FreePom:
回复 Viki Shi:
之前很容易死机的原因:如果把TRNG_generateEntropy(handleTrng, &entropyKey);这个API放在射频同步发送之后,就会出问题,我现在是放在射频同步发送之前就好很多,但是就会出现个别有问题的现象
Viki Shi:
回复 Viki Shi:
建议用CCS里的Runtime Object Viewer看一下具体卡在哪里,有没有可能是while循环