ZHDZ010F March   2022  – May 2026 AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1

 

  1.   1
  2. 1使用说明和公告模型
  3. 2器件使用说明
    1.     i2324
    2.     i2348
    3.     i2364
    4.     i2508
  4. 3器件公告
    1.     i2310
    2.     i2311
    3.     i2313
    4.     i2329
    5.     i2345
    6.     i2346
    7.     i2347
    8.     i2349
    9.     i2350
    10.     i2352
    11.     i2353
    12.     i2354
    13.     i2355
    14.     i2356
    15.     i2357
    16.     i2358
    17.     i2359
    18.     i2374
    19.     i2375
    20.     i2386
    21.     i2392
    22.     i2393
    23.     i2394
    24.     i2395
    25.     i2401
    26.     i2402
    27.     i2403
    28.     i2404
    29.     i2405
    30.     i2427
    31.     i2428
    32.     i2433
    33.     i2438
    34.     i2439
    35.     i2488
    36.     i2499
    37.     i2500
    38.     i2502
    39.     i2503
  5.   商标
  6. 4修订历史记录

i2499

突发读取期间发生单错误检测时,返回给主机的数据不正确

详细信息:

当正在进行的多拍突发读取操作期间检测到单比特错误时,RAM 控制器会遇到时序问题。虽然 RAM 控制器中的 ECC 模块正确地纠正了存储器中的错误,但 ECC 模块与 RAM 控制器总线协议逻辑之间的握手时序问题导致数据错位,从而使得在后续的读取节拍中,返回给请求主机(R5F、DMA、PRU-ICSS、CPDMA、HSM-M4)的数据不正确。

  • 在突发读取期间检测到单比特错误时,ECC 模块会在其中插入一个 BUSY 周期。
  • 在此 BUSY 周期中,会暂停对存储器的下一次读取,并执行一次修正写回以修复 RAM 中的错误。
  • 总线协议逻辑未能正确处理此过程中产生的 BUSY 信号。
  • 恢复突发读取后,数据流水线出现错位。

因此:

  • 在错误纠正之后的读取操作中,返回给主机的数据不正确。
  • 可能导致程序执行失败和异常中止。

此问题仅影响 L2 和 MBOX RAM 的读操作。

物理 RAM 中的内容保持正确纠正状态(无存储器损坏),且写入操作功能正常。以下为简要方框图。

权变措施:

根据系统要求和安全需求,可考虑以下解决方案:

选项 1:ECC 禁用

仅适用于非安全应用:彻底关闭错误纠正码 (ECC) 功能。

选项 2:保守式错误处理

将系统配置为将所有单比特错误纠正 (SEC) 事件视为双比特错误检测 (DED) 事件。

这意味着即使对于可纠正的单比特错误,也只实现仅检测行为而不尝试纠正。

选项 3:预防性存储器擦洗

若上述方案不可行,则定期执行存储器擦洗以主动管理潜在错误:

在应用程序访问之前,系统地读取存储器位置以检测并纠正单比特错误。

实现方法:

  • 通过 DMA(直接存储器访问)进行 SRAM 擦洗

    有关 DMA 擦洗器,请参阅 SDK 参考示例

  • 通过 ICSS(工业通信子系统)进行 SRAM 擦洗

    有关 PRU 擦洗器,请参阅 SDK 参考示例

重要限制:虽然擦洗操作可降低正常运行期间遇到错误的概率,但无法完全消除发生错误的可能性。