TI中文支持网
TI专业的中文技术问题搜集分享网站

硬件随机数能频繁调用吗

如果软件中每秒调用一次硬件随机数的接口获取随机数,这样会不会出问题

。软件可能每秒调用一次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, &paramTrng);
            if (!handleTrng) {
                while (1)
                    ;
            }
        }
    }
    

    // TRNG_close(handleTrng);
}
void init_generateRandom(uint8_t size)
{
    
    TRNG_init();
    CryptoKeyPlaintext_initBlankKey(&entropyKey, keyLocationBuffer, size);

    TRNG_Params_init(&paramTrng);
    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, &paramTrng);
    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循环

赞(0)
未经允许不得转载:TI中文支持网 » 硬件随机数能频繁调用吗
分享到: 更多 (0)