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.

[参考译文] TMS320F280039C-Q1:有关 CLA_STL 的一些问题

Guru**** 2463980 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1491554/tms320f280039c-q1-some-question-about-cla_stl

器件型号:TMS320F280039C-Q1

工具/软件:

尊敬的专家:

我问这个问题。

现在、他们已将 CLA_STL 集成到其应用程序中、并已将 STL_CLA_testRegisters1 ()、STL_CLA_testRegisters2 ()、STL_CLA_testRegisters3 ()、STL_CLA_runPOSTMicro ()、 STL_CLA_runPESTMicro ()通过,但 STL_CLA_ALL ()失败, returnVal 为1 ;我检查了他们的命令: e2e.ti.com/.../STA_5F00_F28003x_5F00_FLASH_5F00_CLASWBIST.txt 和 e2e.ti.com/.../STA_5F00_F28003x_5F00_FLASH.txt,似乎没问题。

它们不会更改 CAL_STL 的源代码、代码显示为: e2e.ti.com/.../STL_5F00_TEST.c.txt 和 e2e.ti.com/.../STL_5F00_TEST.h.txt

1.你给一些建议,为什么所有测试失败?

2.在 STL_CLA_ALL 测试中、它包括  STL_CLA_testRegisters1 ()、 STL_CLA_testRegisters2 ()、 STL_CLA_testRegisters3 ()、STL_CLA_runPOSTMicro ( )、  STL_CLA_runPESTMicro ()、为什么需要运行 STL_CLA_ALL 测试? 上述测试之间是否有任何区别?

3.我注意到、在我们的用户指南中、显示 CLA_STL 旨在参与嵌入式应用、因此我想再次确认 CLA_TEST 需要循环运行、客户不能在 初始化过程中直接运行它?

BRS

Shuqing

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

    1.编写原始示例时、STL_CLA_ALL 运行所有 POST 和所有 PEST 矢量、而 POST 和 PEST 测试缓慢地通过 POST 和 PEST 测试向量迭代、因此如果让应用程序运行足够长的时间、最终它们也会在这些向量中看到故障。

    为了确定如何解决问题、我需要知道什么特定的测试向量出现故障--请对其进行调试以找出问题所在。 根据我的经验、人们遇到的最常见问题之一是 STL_CLA_POST_VECTOR_08、它使用 SPI B。请确保在 CLA_STL 运行之前启用 SPI B 的时钟。

    2和3。 STA 工程不代表实际应用需要如何运行 STL。 它们不应像在其应用程序中那样使用 STA_Tests_testDevice()函数。 上电时、它们只需要运行 STL_CLA_testRegisters"函数和所有 STL_CLA_runPOSTMicro 测试向量。 然后、在运行时、他们需要定期调用 STL_CLA_runPESTMicro 函数、并逐渐迭代45个 PEST 测试向量。

    Whitney

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

    您好 Whitney、

    感谢您的回复并遵循您的建议。

    客户修改其代码:他们将 STL_CLA_testRegisters1、STL_CLA_testRegisters2、STL_CLA_testRegisters3和 STL_CLA_runPOSTMicro 置于 初始化中、并  定期调用 STL_CLA_runPESTMicro。

    现在测试: STL_CLA_testRegisters1 、STL_CLA_testRegisters2 、STL_CLA_testRegisters3和 STL_CLA_runPOSTMicro  都通过、但会进行所有测试  

    STL_CLA_runPESTMicro 是 FAL (从 Vector0~44开始)、所有返回值都是0x4、您能对此提供一些建议吗?

    它们已经启用 SPI B 时钟: CpuSysRegs.PCLKCR8.bit.SPI_B = 1U;

    我上传有关 CLA_STL 的代码: e2e.ti.com/.../Fusa_5F00_Cpu.7z

    BRS

    Shuqing

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

    值0x4是超时。 我在您分享的代码中看不到任何可以解释的内容。 增大 PEST 测试的延迟变量是否有任何区别? 他们是否可以考虑在其代码中的任何因素、这些因素可能会阻止 CLA 任务触发或阻止测试配置 MEM_CFG 寄存器(如锁定寄存器)?

    Whitney

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

    您好 Whitney  

    我们将时间更改为100、但仍返回超时故障。

    我们还检查 MEM_CFG_REG 中的寄存器、例如 DxLOCK、所有值均为0。

    我们还需要检查什么吗?

    BRS

    Shuqing

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

    他们能否通过几个断点来尝试确定他们看到的超时类型? 他们能否将一个放在 stl_cla_pest.c 中、一个放在 stl_cla_s.asm 中?

    STL_CLA_runPESTMicro ()中的 STL_CLA_pest.c:

    STL_CLA_RunTest ()中的 STL_CLA_s.asm:

    Whitney

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

    您好 Whitney、

    STL_CLA_runPESTMicro ():
    中的 stl_cla_pest.c

    它返回以下结果:

    您能帮助检查一下下面的寄存器中是否有任何错误吗?

    BRS

    Shuqing

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

    那么、如果他们在第591行放置一个断点、它会在那里停止呢? MIRUN 表明正在执行任务1? 这可能意味着 STL 在等待任务1完成时超时、因为它在没有活动任务之前无法运行。 他们的任务1在做什么? 是否需要很长时间才能运行?

    Whitney

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

    您好 Whitney、


    感谢您的建议、我们发现由于 CLA 任务配置错误、任务将卡住、然后生成超时错误。
    为了排除这些因素的干扰、使任务失败、他们禁用了任务2到任务7、只启用了任务1和任务8。 此外、它们还简化了任务1和任务8、确保任务能在短时间内完成。

    进行上述修改后、STL_CLA_runPESTMicro () 在测试开始时不会返回超时、并且会在某些测试向量中返回0x80错误。 运行一段时间后、它将返回超时。


    您能否就后续步骤提出建议?

    BRS

    Shuqing

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

    它们是否为某些 CLA 任务启用了中断(即在 PIEIER11中启用了哪些中断)? 设置 PIEIFR 中的哪个位会导致报告0x80值。 它是在 STL_CLA_RunTest ()运行之前设置还是在运行期间设置?

    Whitney

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

    您好  Whitney、

    我们发现根本原因:客户使用硬件触发 CLA 任务、 触发信号的时间间隔太小、微秒范围内。 因此、 当 CPU 执行 CLA STL 时、触发条件可能会再次生成。 现在、如果我们增加 触发时间间隔、则 CLA STL 可以成功通过。 感谢你的帮助。

    BRS

    Shuqing