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-EP:关于 SCM 的奇偶校验

Guru**** 2474200 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1041124/tms570lc4357-ep-regarding-parity-check-of-scm

器件型号:TMS570LC4357-EP

您好!

这是有关 ESM 通知和 SCM 奇偶校验的问题。


当执行时、根据 SPNU563A 的第3.3.1节、存储了以下测试代码:ESM1.52、1.70和2.7。
ESM 通知是否正确?
具体而言、我们担心 ESM1.70的通知、因为此测试代码不运行 DMA 模块。

测试代码:
volatile uint64 * ramtest = 0x08000000;
volatile uint64 tmp;
* ramtest = 0x8000000000000000000001;
/* SCMCNTRL (FFFF0A04h)- PAR DIAG EN (27-24)*/
scmREG1->SCMCNTRL =(scmREG1->SCMCNTRL & 0xF0FFFFFF)|(0xAU << 24);
tmp =* ramtest;

每个状态寄存器:
μ・ESM
ESMSR1:0x00000000
ESMSR2:0x00000080 (ESM 2.7)
ESMSR3:0x00000000
ESMSR4:0x00100000 (ESM 1.52)
ESMSR7:0x00000040 (ESM 1.70)
・L2RAMW
RAMERRSTATUS:0x00008000 - CPEOI (15)
μ・DMA
TERECTRL:0001000A - TER_ERR (16)

谢谢、

好的

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

    您好!

    [引用 userid="408391" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1041124/tms570lc4357-ep-regarding-parity-check-of-scm "]

    具体而言、我们担心 ESM1.70的通知、因为此测试代码不运行 DMA 模块。

    [/报价]

    您是否正在使用 DMA 模块? 如果在启用 SCM 奇偶校验时有一个 DMA 事务在后台进行、则 DMA 也可以检测奇偶校验错误。 请参阅下面以蓝色突出显示的陈述。 互连模块将输出奇偶校验位的反极性。 这样、它将强制所有主器件/从器件检测地址和控制总线上的故障。  

      

    要启用奇偶校验检测测试、应切换到特权模式并将0xA 写入
    SCMCNTRL[27:24]控制寄存器。 这将反转奇偶校验极性并仅测试一个周期。 。
    一旦触发反转奇偶校验极性至、SCM 模块将把控制密钥复位回0x5
    互连硬件校验器。 由于奇偶校验极性仅在互连内部反转、因此互连内部反转
    将标记输入控制和地址信号的奇偶校验错误。 互连还输出反极性
    用于输出控制和地址信号。 因此、连接到互连的主从 IP 可以
    也可能产生奇偶校验错误。 这样、主器件和中的相应奇偶校验检测逻辑
    从 IP 可同时进行测试。 应清除主 IP 中的所有奇偶校验错误状态位、
    从器件 IP 或互连状态寄存器。

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

    您好、Charles-San、

    感谢您的支持。

    >您是否正在使用 DMA 模块?

    我不使用 DMA 模块。

    那么、当 DMA 模块未被使用时、您认为生成 ESM1.70的原因是什么?

    谢谢、

    好的

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

    Kobori-San、

     即使没有 DMA 通道处于活动状态、互连中的奇偶校验也可能导致 DMA 检测到事务错误。 请查看下面的说明和图。 图中的响应和响应奇偶校验来自互连。   

    20.2.19事务错误
    DMA 为所有事务生成奇偶校验、并检查对事务的响应的奇偶校验。 请注意
    此功能与控制数据包 RAM 的 ECC 检查不同。
    如果在这些事务中检测到奇偶校验错误、并且启用 TERECTRL 寄存器中的 TER_EN 位、则为 DMA
    将在仲裁边界停止处理当前通道、并更新 TER_ERR 标志。 。
    在 TERROFFSET 中捕获检测到奇偶校验故障的通道的偏移量
    寄存器。 此外、错误也会指示到 ESM 模块。 这如图20-18所示。
    由于通道由于错误而停止、并且外设和 DMA 可能会不同步、
    建议按照以下顺序恢复信道:
    1.读取 TEROFFSET 寄存器、查找导致传输错误的通道编号。 寄存器
    读取后自动清零。
    2.通过向该标志写入1来清除 ter_ERR 标志。
    3.禁用触发 DMA 事件的外设。
    4.重新初始化控制数据包。 请注意、这不会改变通道的 HWCHEN 位。
    5.重新使能外设以触发 DMA 事件。
    6.重新启用 DMA 通道(由于错误、DMA 逻辑先前已将其清除)。
    在某些情况下、DMA 可能会在不更新 TEROFFSET 的情况下设置 TER_ERR 标志
    寄存器。 这是由于没有通道处于活动状态时的奇偶校验错误造成的。 恢复序列
    清除 ter_ERR 标志。

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

    您好、Charles-San、

    感谢您的支持。

    此致、

    好的