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.

[参考译文] TMS320F28377S:RAM March Copy Test - SafeTI 库

Guru**** 2482105 points
Other Parts Discussed in Thread: TMS320F28377S, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/922450/tms320f28377s-ram-march-copy-test---safeti-library

器件型号:TMS320F28377S
主题中讨论的其他器件: C2000WARE

您好!

我使用 TI SAFE-TI STA 在我的定制 TMS320F28377S PCB 上执行一系列诊断测试。 此查询特别涉及一个测试 STA_March 复制  

  1. 在没有注入任何故障的情况下运行-此测试正常运行。 我看到的过程是、
    1. 请注意、在 GS0 (0x00C000、ramfuncs)上运行此测试仅用于初始测试的64个32位字。 -我也对 ebss RAM 感到厌烦、结果与下面的情况相同...
    2. 首先从测试地址(长度)复制内容到复制地址  
    3. 使用选定的模式应用 March Test
    4. 将内容从复制地址复制回测试地址。
    5. 使用 STL_March 校验错误状态()和调用传递/失败来检查内存错误
    6. 该测试结果为通过。 内容恢复回地址。
  2. 在注入故障的情况下运行测试。  
    1. 在这里、测试在与上述相同的存储器上运行。
    2. 使用 xorMask - 0x00000001时注入错误。 我可以看到、在这个饱和之后、第一个字中有一个位翻转。
    3. 在此之后、代码启动 March 函数(一个 asm 文件)
    4. 我单步执行 asm 文件和代码、只需 aAscend 部分... 代码最终在未定义的存储器中结束并停止。 我不知道为什么!

代码在第2.d 点指示的点出现故障的任何原因 我已经为此停留了几天了。 任何帮助都很好。 我无法在此处共享整个项目、但如果需要、我可以肯定地共享诊断测试代码部分。 请帮我解决这个问题。 这与几周内即将进行的 UL1998法规测试有关。 我需要在这之前抓住它。

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

    大家好,还在等一些帮助 请务必告知任何指示器。

    谢谢

    桑托什

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

    您好、Santosh、

    我们将查看此问题、并将很快返回给您。  谢谢、Krishna

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

    您能给我更多关于这个"未定义的内存"位置的信息吗? 跳转到哪个地址? 反汇编窗口或.map 文件在该位置显示什么?

    您是否会收到一个带有未注册处理程序的中断? 如果您在 CCS 寄存器窗口中查看 PIECTRL、能否确定最近获取的矢量是什么?

    惠特尼

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

    尊敬的惠特尼:

    这是我的反汇编、它是一个 Estop

    和调试显示了

    关于 PIECTRL,这是你所指的吗?

    同时...

    我获取了用于诊断的原始 TI 测试代码- ti\c2000\C2000Ware_1_00_01_00\libraries\diagnostic\f2837xs\examples (我基于此构建了代码)

    并将 d1ram 部分从 RAMD1更改为 RAMGS0。 ramfuncs 被分配给(RAMGS0 | RAMGS1)并运行 enableErrorInject = 1的测试。

    代码在我使用代码进行测试时所处的位置完全停止。 我必须这样做、以确保问题与我的功能代码无关。

    请告知您是做了什么错误、还是错过了什么...

    谢谢

    桑托什

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

    因此、我认为区别在于 D1具有 ECC 并且可以校正单个位错误、但 GS0具有奇偶校验功能、因此不能并将生成 NMI。 0x3fe2ed 位于引导 ROM 中、因此似乎您正在进行复位。 您是否注册了 NMI 处理程序?

    惠特尼

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

    嘿、Whitney、

    哦、我明白了。 我在 TRM 中对此进行了介绍、并了解到 GS0-GS15和 LS0-LS5上的奇偶校验错误不可纠正、并引发 NMI ISR。 这是正确的吗?

    在这种情况下、STL 测试代码将为该测试配置任何 NMI。 这应该解释了它的复位原因。

    但建议在 DIAG 库文档中的一行或两行中详细说明、其中指出测试可应用于任何 RAM。

    您能否建议使用哪种测试用例来测试 RAM DC 故障测试? 我还在 SAFE-TI STA 中提供了 RAM_LOGIC 和 RAM_DETECT 测试用例。

    我曾提到过 March13N 测试。 如果我必须使用此方法,我必须保持 NMI ISR 的执行,然后纠正从此处注入的错误?  

    谢谢

    桑托什

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

    尊敬的惠特尼:

    一些更新。 当我针对不可纠正的内存错误启用 NMI 时、代码确实跳转到 ISR 而不是复位。

    谢谢

    桑托什

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

    很高兴听到这一消息解释了这个问题。 我不知道您要满足哪些要求、因此我无法真正建议您是否只依赖奇偶校验/ECC、或者是否需要3月测试。 您是否看过此应用手册? www.ti.com/lit/SPRACB9

    惠特尼

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

    尊敬的惠特尼:

    我猜是"TMS320F2837xD、TMS320F2837xS 和 TMS320F2807xC2000TmSafeTITm诊断库"版本 n 1.00.02.0和 www.ti.com/lit/SPRACB9

    或多或少是相同的文档、两者都是最后一次在2017年底编辑的 感谢您的参考、我将仔细研究这一点、以了解是否有任何差异。

    来澄清我的问题

    如果我理解正确、传统上执行 March 测试的方法是写入一个模式并读回同样的模式来比较和识别是否存在一个位错误(直流故障)。 一旦达到阈值、手动升高故障以停止功能运行。

    我还了解到、这些处理器中的存储器控制器模块默认情况下可以执行此测试、并且如果在其中一个地址/数据中发生了位/奇偶校验错误的写入/读取操作、则产生中断。 因此,为了使该功能持续运行,我只需配置位/奇偶校验错误 ISR?

    很抱歉、我有几个(可能会)简单的问题、我是第一次实施、看到与用于 Piccolo 处理器等的 IEC60370 STL 库有所不同、

    你指出的指标对我来说非常有帮助,让我了解发生了什么,并做了一个移动。。 谢谢。

    谢谢、此致

    桑托什