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.

[参考译文] TMS570LC4357:针对 MibSPI ECC single-bit 错误的 ESM 通道

Guru**** 2768565 points

Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1579858/tms570lc4357-esm-channel-for-mibspi-ecc-single-bit-error

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

MibSPI1 的设置如下:

  1. 在 PAR_ECC_CTRL 中启用 SBE_EVT_EN、EDAC_MODE、PTESTEN、Eden
  2. 在 ECCDIAG_CTRL 中启用 ECCDIAG_EN。
  3.  使用附加的代码生成一位错误。
  4. 获取在 ECCDIAG_STAT 和 PAR_ECC_STAT 中设置的相应错误标志。
  5. 但 调用 esmGroup1Notification 时、通道 45 作为参数 、而不是数据表中所述的 77、我已在哈可根的 ESM 中实现了相同的功能。 45 声明为保留。
  6. 在 MibSPI Tx RAM 索引 0 中也纠正了 single-bit 错误。
    volatile uint32 *ecc_pointer = ((volatile uint32 *)(0xFF0E0000U + 0x400U)); /* only last 8 bits are valid from 0x0 to 0x7U */

    *ecc_pointer = (0x59U); /* ECC for data 0xA1, single bit flipped */

    uint16 data = mibspiRAM1->tx[0].data; /* read to cause ecc error */

 

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

    要添加:

    ECC 是为 0xA5 生成的、因此将 ECC 添加为 0xA1 时应导致 1 位错误、如果我错了、请纠正我(通过写入 Tx RAM 来记录为不同数据生成的 ECC)。

    以相同的方式引起双位错误、使用相同的通道编号触发 ESM。

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

    小更新:对于双位错误、我得到了作为参数传递的正确通道、即 17。 single-bit 错误仍然可以得到 45。

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

    您好 Prajwal、

    建议:

    1. 验证 ESM 配置:
    • 检查 ESM 通道映射的 HALCoGen 配置
    • 确保在 ESM ENABLE 位图 (0) 中正确启用通道 77
    1. 检查 MibSPI 配置:
    • 验证是否通过 PAR_ECC_CTRL 正确启用了 MibSPI ECC 检测
    • 确认在 ECCDIAG_CTRL 中是否正确设置了 ECCDIAG_EN
    1. 调试步骤:
    • 在 ESM 通知处理程序中设置一个断点、以验证哪个通道实际正在触发
    • 在发生中断时检查 ESM 状态寄存器以确认错误源
    • 确认没有同时触发其他错误条件

    如果问题未解决、请尝试这些操作、我将从我这边进行进一步的调试

    --
    此致、
    Jagadish。