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.

[参考译文] AM2612:Am2612 PBIST 函数实现

Guru**** 2768225 points

Other Parts Discussed in Thread: AM2632, AM2612

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1602912/am2612-am2612-pbist-function-implementation

器件型号: AM2612
Thread 中讨论的其他器件: AM2632

尊敬的 TI 团队:

我参考了 AM2632 MCU+SDK 示例代码来实现 PBIST、并在 AM2632 MCU 上成功验证了该实现。  

但当我尝试在 am2612 平台上实现 pbist 函数时,我遇到了一些问题。

我使用 mcu_plus_sdk_am261x_10_00_01_10 实现了 pbist 函数、没有 pbist 示例。 因此、第一步失败。

testResult = s32PbistRunTest(SDL_PBIST_INST_TOP, true);
 
当我在 am2632 平台上工作时、我从未遇到过这个问题。
image.png
如您所见、应用程序尝试运行失败测试、但会卡住。 等待 13 秒后、tset 失败。
奇怪的是、如果我通过 CCS 调试使用 SDK:mcu_plus_sdk_am261x_10_02_00_15 中的 pbist 示例:sdl_pbist_example_am261x-sm_r5fss0-0_nortos_ti-arm-clang、则成功了。
image.png

我在 pbist 函数之前已初始化了 SDL_DPL_init。我想知道是否错过了任何设置。

我们将非常感谢您的帮助和指导。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    int32_t Pbist_s32MainFunction(void *args)
    {
        /* Declarations of variables */
        int32_t    result = SDL_PASS;
        int32_t    testResult = 0;
    
        /* Init Dpl */
        result = Pbist_DplInit();
        if (result != SDL_PASS)
        {
            DebugP_log("Error: DPL Init Failed\r\n");
        }
    
        /* failure Insertion test */
        testResult = s32PbistRunTest(SDL_PBIST_INST_TOP, true);
    
        if (testResult == SDL_PASS)
        {
            CacheP_disable(CacheP_TYPE_L1P);
            CacheP_disable(CacheP_TYPE_L1D);
            /* PBIST test */
            testResult = s32PbistRunTest(SDL_PBIST_INST_TOP, false);
        }
    
        return testResult;
    }
    
    /* function call */
    
        s32PbistTestResult = Pbist_s32MainFunction(NULL);
        if(s32PbistTestResult == SDL_PASS)
        {
            DebugP_log("PBIST Test success\r\n");
            ptrTopCtrlRegs->HW_SPARE_RW1 |= (uint32_t)0x01U << 2U;
        }
        else
        {
            DebugP_log("PBIST Test failed\r\n");
        }

    以下是一些代码、 如果您需要任何其他信息、请询问我。

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

    什么是 s32PbistRunTest? 是否是您自己的 SDL SDL_PBIT_selfest 函数版本? 它是否使用 mcu_plus_sdk_am261x_10_00_01_10 SDL PBIST 文件夹中的文件? 如果是、直到 10.02 版本才正式支持适用于 AM261x 的 SDL、因此不应使用这些较旧的文件。

    Whitney

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

     这是 mcu_plus_sdk_am263x_10_01_00_31 示例代码。

    感谢您的问题 Whitney。
    s32PbistRunTest 只是一个用于获取函数结果的 var。我在 am2632 上实现了此代码并且它是有效的。 我移植到 am2612 以验证功能。

    mcu_plus_sdk_am261x_10_00_01_10 中确实没有关联的 PBIST 示例、但源代码中有 SDL 库。是否需要更新 SDK 版本?

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

    是的、正如我所说、AM261x SDL 直到 10.02 才获得官方支持、因此没有相关示例。 我建议迁移到具有更新 SDL 的较新版本 SDK。 我们目前正在研究版本为 11.01.00 的 SDL 认证、因此、如果您需要认证、我建议您选择这种认证。

    Whitney

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

    我想我们是否只能将 SDL 代码从 10_00_01_10 更新到  11.01.00、但不能更新其他 SDK 文件?

    里昂

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

    SDL 与 SDK 的其余部分没有任何依赖关系、因此只能更新 SDL。

    Whitney