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.

[参考译文] F28M36H33B2:LRAM3区域内的 RAM 读取访问上出现总线或硬故障

Guru**** 2512985 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1355644/f28m36h33b2-bus-or-hard-fault-on-ram-read-access-in-the-lram3-area

器件型号:F28M36H33B2

Hi C2K champs、

在 F28M36器件上、读取 RAM 访问时发生的是非常低的总线故障或硬故障-在 LRAM3区域中的读取访问(从0x20018000至0x2002FFFF)中发生问题/未识别特定的 RAM 地址-这个地址范围由固件非常频繁地访问

q1:如果发生总线或硬故障、然后恢复正常、故障是否会被清除?

Q2:访问(读取) RAM 数据后发生总线或硬故障的可能原因是什么?

谢谢!

此致、

纪尧姆

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

    纪尧姆

               请回答以下问题。 您也可以将信息私下发送给我。  

    1. 此设计投入生产有多长时间?  还是还没有投入生产?
    2. 如果该设计正在量产、到目前为止、此器件附带了多少个电路板?
    3. 在多少个板中发现了此问题? DPPM 值是什么?
    4. 在出现问题的电路板上、问题是间歇性的还是永久性的?
    5. 如果问题是间歇性的、出现的频率如何?
    6. 是否能够轻松一致地重现问题?
    7. 在已经正常工作一段时间的设备中是否可以看到这种情况? 如果是、多长时间?  

    如果仅在一个设备中出现问题、则可能是由于潜在缺陷所致。

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

    以下是 TI 根据问题背景对我的前两个问题提供的不同答案:

    Q1:如果发生总线或硬故障、然后恢复正常、是否会清除故障?

    故障可能不会自动清除。 用户应用程序中的故障处理程序需要考虑这一点。

     

    Q2:在访问(读取) RAM 数据后发生总线或硬故障的可能原因是什么?

    很可能是由于不可纠正的 ECC 错误。 用户应能够检查标志寄存器以了解这一点。 ECC 错误可能由电路板上的噪声引起。

    此致、

    纪尧姆

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

    谢谢你、Guillaume

    关于 Q2、如果发生不可纠正的 ECC 错误、是否可以从该错误中恢复?

    如果可能、我该怎么做?

    此致、

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

    如果出现不可纠正的错误、建议将器件复位、因为错误无法纠正。  

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

    尊敬的 Vivek、

    感谢您的答复。

    此 CPU 具有 M3不可纠正的错误标志清除寄存器(MUECLR)。  该寄存器是否可用于清除该错误?

    当然、我知道 RAM 中的数据可能并不正常。

     

    此致、

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

    尊敬的 Vivek、

    问题1。 除了重置之外、是否有其他恢复无法收集的错误的方法?

    问题2: 仅在下面以红色突出显示的指令后弹出错误- R0包含 RAM 地址(例如0x2002EE22)。

    此源代码是否有任何问题?

          

            按   {R4-R9}

            CPSID  I

            MOV    R4、#0x5555                        ;检查模式1

            MOV    R5、#0xAAAA                       ;检查模式2

            MOV    R6、R0                                 ;RAM 测试地址

            ldrh r7   、[R6]                              ;存储器数据保存

            STRH   R4、[R6]

    谢谢!

    此致、

    纪尧姆

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此 CPU 具有 M3不可纠正的错误标志清除寄存器(MUECLR)。  此寄存器是否可用于清除此错误?[/QUOT]

    是的、它会清除错误标志。

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    q1. 除了重置之外、是否有其他恢复无法收集的错误的方法?

    这个问题很难回答、因为它取决于是数据错误还是程序获取错误。 我们建议重置器件并重新启动应用。

    此源代码是否有任何问题?

    这应该是由编译器生成的代码、因此我预计不会有任何问题。  

    Vivek Singh

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

    感谢 Vivek、

    此汇编代码并非由编译器生成。 此代码是由我们的工程师编写的。

    因此我希望您检查该代码。

    此代码用于 RAM 检查。

    过程如下...

    存储1个字的数据(原始数据)->写入0xAAAA ->检查数据->写入0x5555 ->检查数据->恢复到原始数据

    如果数据在检查数据期间不匹配、则会产生错误。

    执行存储1字数据(原始数据)时弹出错误。

    此致、

    Tatsuya

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

    是否有任何特定的原因要以汇编语言编写此代码?  

    此外、每次执行此代码或仅在某个时间出现错误吗 ?

    是否可以用 C 语言编写相同的代码并尝试?

    Vivek Singh

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

    我们需要将一个 RAM 数据存储到其中一个通用寄存器(例如 R6)才能实现该 RAM 检查过程。

    我们已经通过汇编语言编写了这段代码。 因此、我认为用 C 语言编写这段代码很困难。

    发生此错误的频率非常低(在持续电源条件下、此问题发生在三个多月之后)。

    此致、

    Tatsuya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此错误发生频率极低(在连续供电条件下、此问题发生在三个多月之后)。

    在这种情况下、汇编代码应该没有问题、但我在此汇编代码中看不到以下序列。  

    [报价 userid="608332" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1355644/f28m36h33b2-bus-or-hard-fault-on-ram-read-access-in-the-lram3-area/5251631 #5251631"]存储1个字的数据(原始数据)->写入0xAAAA ->检查数据->写入0x5555 ->检查数据->恢复至原始数据

    Vivek Singh

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

    尊敬的 Vivek、

    发布的汇编代码是此序列的一部分。

    我想知道这个助记符的使用是否有什么问题 LDRH   R7、[R6] )。

    此致、

    Tatsuya

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

    如前所述、我认为 助记符没有任何问题、但我将在编译器团队中循环执行、以进行确认。

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想知道使用此助记符( LDRH   R7、[R6] )[/报价]。

    我不确定要检查的是什么。  这是有效的 Arm 指令。  当您单步执行代码时、它会达到您的预期吗?

    谢谢。此致、

    -George.

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

    您好、George、Hi Vivek、

    感谢您的 支持。

    此代码正常工作。 但是、 在我们的产品中、发生总线或硬故障的几率非常低。

    因此、我想知道使用助记符是否存在任何问题。

    似乎出现了 ECC 错误。

    如果此 ECC 错误是由程序获取错误引起的、是否可以通过使用 MUECLR 寄存器清除错误并重新读取 RAM 来解决此问题?

    此致、

    Tatsuya

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

    您好!

    如果此 ECC 错误是由程序获取错误引起的、是否可以通过使用 MUECLR 寄存器清除该错误并重新读取 RAM 来解决该问题?

    这将清除错误、但由于它是不可纠正的错误、重新读取将不会纠正错误、因此返回到相同的地址可能会再次导致故障。

    此致、

    Vivek Singh