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.

[参考译文] TMS570LS3137:软复位- ramErrorReal

Guru**** 2479725 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/696012/tms570ls3137-soft-reset---ramerrorreal

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

您好!

我有一个通过 Halcogen 3.5生成的项目。 在 CCS 5.4中运行

我尝试通过以下行跳转到地址0x0来重置处理器:((void (*)(void)) 0x00000000)();

它会根据需要跳至 resetEntry。 当我点击"Continue"时、执行会在 dabort.asm 中的 ramErrorReal 处循环。

听起来它与 ESM 组3有关。 我不明白发生了什么。  复位时、ESM 组3启动测试是否失败? 如果是、原因是什么? 如何解决此问题?

 我必须在请求时复位处理器。

我是否需要通过另一种方式复位处理器、例如写入特殊寄存器? 如果是、什么寄存器?

谢谢、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有时、我会在以下部分循环:

    /*检查加电期间是否存在 ESM 组3错误。
    *这些可能发生在电子保险丝自动加载期间或从闪存 OTP 读取期间
    *在加电期间。 器件运行不可靠、不建议这样做
    *。
    * ESM 组3错误仅将 nERROR 引脚驱动为低电平。 外部电路
    *监控 nERROR 引脚的器件必须采取适当的措施来确保这一点
    *系统被置于安全状态,由应用程序确定。
    *
    if ((esmREG->ESTATUS1[2])!= 0U)

    /* for (;;)可以通过在上面和下面的用户代码中添加"#if 0"和"#endif"来删除*/
    /*用户代码开始(24)*/
    /*用户代码结束*/
    for (;;)

    }/*等待*/
    /*用户代码开始(25)*/
    /*用户代码结束*/
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    一旦一个错误发生、ESM 模块将设定相应的错误标志。 此外、根据 ESM 设置、它可以触发一个中断、ERROR 引脚输出低电平。

    ESMSR3和 ESMSR2有何价值? 如果该值不为零、则向相应的位写入1以清除错误状态寄存器。 您可以使用 ESM2/3 (组2或组3)中的值(设置的通道)来从数据表中的"ESM Channel Assignments"表中找到错误条件。

    nERROR 是否被驱动为低电平? 如果 ESMEPSR (ERROR 引脚状态寄存器)被清零、nERROR 引脚输出低电平。 您可以向 ESMKY 写入0x5以将 nERROR 引脚释放回正常状态。 如果写入0x5不起作用、请使用0xA、然后使用0x0。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你。

    ESMR3寄存器的值为0x20。 基本上表示 RAM 奇数组- ECC 不可纠正的错误已打开。

    发生这种情况的原因是向地址0x0添加了 JUMP 语句。 当我注释掉跳转到地址0的语句时、不会观察到这个问题。

    在语句跳转到地址0x0后、执行会转到 resetEntry、但随后卡在该 ESM 组3错误中。

    此语句跳转到0x0会如何导致此 RAM ECC 错误?

    如何通过其它方法实现处理器复位?

    谢谢、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对此有任何见解/帮助?
    是否必须在 Halcogen 中取消选中"RAM ECC Enable"? 不过、我希望对 RAM 进行 ECC 检查。
    如何实现我的重置目标?
    请参阅之前的注释。
    提前感谢您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我刚刚在 launchpad 上进行了测试、但没有遇到问题:

    通过将0x10写入 systemREG1->SYSECR 的位[15:14]来重置 SW。

      systemREG1->SYSECR =(0x10)<<14;

    2.跳转至地址0x00

      ((void (*)(void)) 0x00000000)();