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:在 PORRST 之后是否有任何 TMS570LC4357寄存器未复位?

Guru**** 2481325 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/701199/tms570lc4357-are-any-tms570lc4357-registers-not-reset-after-a-porrst

器件型号:TMS570LC4357

我们使用的是 TMS570LC4357。

我的理解是、在 PORRST 中、430.43的 RAM 不会自动复位、但绝大多数 MCU 寄存器都处于复位状态。

我的理解是、即使是 SYSESR 寄存器也会由 PORRST 自动复位。  (当然、会设置 SYSESR 的 PORST 位。)

我的理解是(PC 之外)所有基本 ARM CPU 寄存器(R0-14、CPSR 和 SPSR、包括任何分组版本)都需要在任何复位后进行显式初始化、以确保没有 CCM 错误。  这将使 PORRST 是否复位这些寄存器的问题在某种程度上没有实际意义。  我假设 FPU 寄存器也是如此、对吗?  

除此之外、是否有任何由 PORRST 进行_NOT _复位的4357 MCU 寄存器?  TI 系统或外设控制寄存器?  ARM CP15寄存器?

-thx

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

    在一个 nPORRST 复位时、大多数寄存器被复位至其缺省值。 一些错误寄存器(例如、双位 ECC 错误地址寄存器(UERRADDR))。 上电复位后、这些寄存器的内容将不可预测。

    上电复位后、SRAM 的内容未知。 可以执行硬件自动初始化、以便没有 ECC 错误。

    上电复位后、不保证 CPU 内部寄存器在两个 CPU 上都处于相同的状态。 两个 CPU 输出中的任何差异都被标记为高严重性级别的故障。 因此、在进行任何函数调用之前、CPU 内部内核寄存器需要被初始化为预定义状态。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 QJ、

    感谢您跟进我的问题。 我想进一步深入探讨这一点,以确保我的理解是完整的。

    首先、我应该在前面说过"PORRST"时明确表示、我是指 Hercules 4357针对 nPORRST 输入被保持在低电平至少所需的最短时间所做的响应。 (顺便提一下、我们已将 TPS653842的 NRES 输出连接到4351的 nPORRST 输入。)

    我的理解是、当在最初为4357加电后立即执行代码(并且 TPS65381A 已释放我们的 nPORRST 输入)时、由已知的43S 将重置的所有内容、nPORRST 将处于已知的状态。 其他所有(包括 SRAM)都将处于未知/不可靠状态。

    我的理解是、在任何进一步的 nPORRST 周期之后(如果电源一直正常)、SRAM 内容将包含 nPORRST 之前的任何内容(这是否与 nPORRST 低电平的时间无关? 如果它在几秒钟内处于低电平、该怎么办?)、有些? MOST? CPU 和 FPU 寄存器将不可靠、并且_Most 其他寄存器将由 nPORRST 逻辑复位。

    我特别感兴趣的是这些"大多数其他寄存器"。 毕竟有很多。 是否有_ANY_寄存器(CPU、FPU、CP15或 TI 配置/外设)在 nPORRST 边界上可靠地保持其状态? (如果电源仍然正常。)

    您提到了有关 UERR_ADDR 寄存器的一些内容。 4357的技术参考手册规定、"加电复位时异步复位后"为0、我认为这包括 nPORRST。 您是否说这些寄存器由 nPORRST 复位为0、但如果在读取 UERR_ADDR 的任何代码之前尝试访问损坏的 SRAM、则 UERR_ADDR 不会为0?

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

    您好!

    如 TMS570 TRM 中所述、以下寄存器不会复位:

    • UERRADDR (VIM 模块) --第683页,SPNU563A
    • FBVECADDR (VIM 模块) --第 683页,SPNU563A
    • SBERRADDR (VIM 模块) --第684页,SPNU563A
    • UERRADDR1 (MibSPI) --第1592页,SPNU563A
    • UERRADDR0 (MibSPI) --第1594页,SPNU563A
    • SBERRADDR1 (MibSPI) --第1603页,SPNU563A
    • SBERRADDR0 (MibSPI) --第1604页,SPNU563A

    ARM TRM 显示"对处理器应用上电复位后、必须初始化各种寄存器" (Cortex-R5 r1p2)

    "当包含浮点时、处理器中的大多数架构寄存器、例如 r0-r14、以及 s0-S31和 d0-D15都不会复位。 因此、您必须在所有模式下初始化这些模式、然后才能使用它们"

    '处理器不初始化 TCM RAM。 初始化连接到 TCM 接口的所有存储器并不重要、但 ARM 建议您这样做。"

    TMS570 TRM:"上电复位后 CPU 2级 SRAM 的内容未知"