This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMDS570LS31HDK:SafeTI PSCON_self_test 触发对_c_int00的复位

Guru**** 1565925 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1226767/tmds570ls31hdk-safeti-pscon_self_test-triggers-a-reset-to-_c_int00

器件型号:TMDS570LS31HDK

我正尝试从 SafeTI 库启动时运行以下测试:

bool runSafeTiPsconTests() {
    bool slRet = false;
    SL_SelfTest_Result failInfoPscon = ST_FAIL;     /* PSCON Failure information. */

    /* Run PSCON self test. */ //! triggers some sort of failure
    slRet = SL_SelfTest_PSCON(PSCON_SELF_TEST, true, &failInfoPscon);
    if ( (slRet != true) || (failInfoPscon != ST_PASS) ) {
        return false;
    }

    /* Stop PBIST Execution. */
    slRet = SL_SelfTest_PBIST_StopExec();
    if (slRet != true) {
        return false;
    }

    //Run other tests here...

    /* All tests passed. */
    return true;
} // All tests pass, jumps back to __c_int00 here?

当我单步执行测试时、该 测试通过、但是、一旦测试函数完成、它会以某种方式触发一个复位回_c_int00启动例程。 我已 通过注释掉函数中的其他测试来确认触发此行为的是 PSCON_self_test。 我对核心寄存器和文档进行了一些挖掘、但无法找到发生这种情况的任何原因。 欢迎您提出任何想法!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Robin、

    我们已着手解决您的问题、并将很快提供更新。

    --

    谢谢。此致、
    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Robin、

    您在代码中将"runSafeTiPsconTests"调用到哪里?

    您可以随附一次完整项目、因为我可以轻松地在最后触发和调试问题?

    在诊断库中、我可以看到"PSCON_self_test"函数在主函数中调用、而不是在主函数之前调用。

    您还可以通过调用 main 函数进行测试、看看器件是否仍得到复位?

    --

    谢谢。此致、
    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jagadish、您好!

    很遗憾、由于公司的 NDA 问题、我无法分享整个项目、但我会尽量分享。  

    在 _c_int00中的系统启动完成后、在主函数中调用上述代码。 将运行以下代码:

    int main(void)
    {
    /* USER CODE BEGIN (3) */
        TaskHandle_t fsmTaskHandle = nullptr;
        BaseType_t freeRtosRet = pdPASS;
        bool selfTestRet = false;
    
        /* Initialize all TI peripherals. */
        gioInit();
        sciInit();
        adcInit();
        canInit();
        crcInit();
        dmaEnableParityCheck();
    
        /* Run selfTests before doing anything. */
       selfTestRet = runSafeTiSelfTests();
       if (selfTestRet != true) {
           errorHandler();
       }
       
       //.. other irrelevant code
    }

    PSCON 测试在函数 runSafeTiSelfTests ()中运行,我可以在这里提供。  

    e2e.ti.com/.../safeTi.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Robin、

    感谢您提供详细信息、我将详细介绍、并尽快提供更新。

    --

    谢谢。此致、
    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jagadish、您好、刚刚点击该线程、看看您是否对此进行了任何更新? 谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    已修复、问题是返回值类型错误。 应为 SL_PSCON_FailInfo 类型、而不是 SL_SelfTest_Result。