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.

[参考译文] TMS320F28379D:内存测试问题

Guru**** 2548960 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/627102/tms320f28379d-memory-test-question

器件型号:TMS320F28379D

您好!

我的客户 遇到内存测试问题、请参阅以下详细信息:

作为安全检查的一部分、我正在进行测试以确保专用存储器上的 ECC/奇偶校验逻辑正常工作。  为了进行测试、我决定检查 M1存储器。

 

以下是步骤:

    1. 我将存储器初始化为零。
    1. 我将 DxTEST 寄存器中的“TEST_M1”位设置为01。
    1. 我从0x404开始向相应的 M1存储器区域写入5个字(1、2、3、4、5)。

 

我观察到位置404、405、407包含0、因为数据更改仅包含1个更改位?  位置406和408分别包含0x3和0x5。

 

当进行了超过2位的更改时、我预计会看到一个错误和一个 NMI、但没有看到任何更改。

 

谢谢、

Chuchen

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

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

    您是如何观察 ECC 错误的? CPU 是否读取到这些位置(406和408)?

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

    感谢您的回答。 我已要求客户在此处提供您的问题反馈。

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

    我们最好能获得他们正在使用的测试代码、以查看他们在该测试中遵循的完整过程。

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

    你(们)好。 以下是我的测试代码。  如上一节所述、我正在使用调试器查看哪些寄存器指示存储器测试错误:我正在监控 MemErrorRegs 以及 NMI 寄存器。  我没有看到任何变化。

    代码:

    //确保 RAM 正常
    #define numberOfLocsToTest 5.
    volatile uint16* ptr =(uint16*) 0x404;

    for (int i = 0;i < numberOfLocsToTest;i++)

    //将测试区域初始化为零。
    PTR[i]= 0;

    //启用测试寄存器。
    EALLOW;
    MemCfgRegs.DxTEST。s.test_M1 = 0x01;//只允许对数据位进行写入。 无到 ECC 位的写入
    EDIS;
    //写入失败.. 1位和2位的组合。
    for (int i = 0;i < numberOfLocsToTest;i++)

    //将测试区域初始化为零。
    PTR[i]= i+1;

    //读回数据
    uint16 readback [numberOfLocsToTest];

    for (int i = 0;i < numberOfLocsToTest;i++)

    //应导致错误位被置位。
    //我希望触发 NMI 和其他 TBD 错误寄存器。
    //作为测试... 使用调试器确定触发哪些寄存器。

    //注意:没有发生任何情况!!
    readback [i]= ptr [i];

    EALLOW;
    MemCfgRegs.DxTEST。s.test_M1 = 0x00;//功能模式。
    EDIS;

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

    您需要退出测试模式、然后读取该值以生成错误。 基本上、在完成数据损坏后、将 TEST_M1位值更改为0x00、然后执行读取操作。 请尝试相同的方法、并告知我们它是如何实现的。

    此致、

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

    www.ti.com/.../iec60730swpackages

    包括多个内存测试。

    SAL