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.

[参考译文] RM57L843:如何进入 RM57L843的空闲模式

Guru**** 2318830 points
Other Parts Discussed in Thread: RM57L843, HALCOGEN
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/582502/rm57l843-how-to-get-into-the-idle-mode-of-rm57l843

器件型号:RM57L843
主题中讨论的其他器件: HALCOGENTMDXRM57LHDK

大家好!

我正在测试 RM57L843的 STC 模块! 根据 TRM、只有在 CPU 通过执行 CPU IDLE 指令 ASM ("WFI")进入空闲模式后、才会触发测试。 以下代码已下载,我认为 CPU 不会“重置”! 我不确定是否执行了空闲指令!

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

    测量是否发生 WFI 指令和 LBIST 执行的一种方法是在调用 STC LBIST 之后放置一个 while (1)路由。 如果代码达到 while (1)、则不会发生 CPU 复位且未执行 LBIST。 通常、会在代码开始时检查 CPU 复位并恢复上下文或设置指示发生 CPU 复位的标志、以便代码可以跳转到正确的后 STC 功能。

    当尝试调试 STC 时、由于 CPU 一个位脱机并被复位、这非常困难。 由于 CPU 复位、调试器通常会放宽其调试设置、例如断点等。 我建议调试这种类型的函数、是在执行前后使用 GIO 切换、可以在示波器上监控该函数、并在调试器环境内或外部以自由运行模式运行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Chuck、

         正如您所说,在 _sl_Kickoff_STC_execution()之后添加了 while (1)。

    当我"中断"时,程序会在 _sl_Kickoff_STC_execution()处停止,但 CPU 不会复位!  当我"执行"时、while (1)被执行!

    如果我不"中断"和"执行"、while (1)将永远不会被执行。

    似乎 CPU 未复位!

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

    我看不到您描述的行为有什么问题。 如果您运行时没有中断(即没有断点)、您应该会看到 IDE 发出的设备已重置警告。 如代码中所述、由于 CPU 复位、调用_sl_Kickoff_STC_execution ()后的代码永远不会达到预期值。

    在您的启动代码中、应该有逻辑来读取 SYS_ESR 寄存器并确定是否发生了 CPU 复位、并将程序计数器定向到它应该拾取执行的位置。 除非在执行 STC LBIST 之前还有代码保存断点信息、然后在 CPU 复位后将其恢复、否则此信息也会由于 CPU 复位而丢失。 因此、很难通过 IDE 调试或跟踪 STC 进度。这就是为什么我建议在自由运行情况下使用引脚切换来跟踪示波器事件的原因。 您还可以使用 UART 消息或内部标志和计数器变量来验证器件在运行期间发生的情况。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    高卡盘、
    我正在使用 HALCoGen 生成的 HAL 代码! 在启动文件中、我注意到 SYSESR 寄存器由"开关情况"清零、并且我修改了该部分。 但问题仍然存在! 是否想帮助我检查下面的初始代码? 谢谢!

    void sl_SelfTest_STC (void)


    寄存器 UINT32 tempVal = 0U;

    /*配置时钟分频器*/
    stcREG1->STCCLKDIV=((UINT32) 2U << 24U);

    /*清除系统异常状态寄存器中的 CPU RST 状态位*/
    systemREG1->SYSESR &=(uint32)(1U<<5U);


    /* 40次测试间隔*/
    stcREG1->STCGCR0 =((uint32) stcREG1->STCGCR0 &(uint32)(0U << 16U));
    stcREG1->STCGCR0 =((uint32) stcREG1->STCGCR0 |(uint32)(40U << 16U));

    /*从开始重新启动自检*/
    stcREG1->STCGCR0 =((uint32) stcREG1->STCGCR0 |(uint32)(1U));

    /*设置超时值*/
    stcREG1->STCTPR = 0xFFFFFFFF;

    /*仅选择内核1进行自检*/
    stcREG1->STCGCR1 |=(UINT32)(0x5 <<8U);


    对于(tempVal = 0U;tempVal < 320u;tempV++){


    /*启用 STC 运行*/
    stcREG1->STCGCR1 |= 0x0A;

    /*启动 STC 执行*/
    gotoCPUIdle_();
    while (1)

    vLedSet (0、0);
    vLedSet (1、0);
    vLedSet (2、0);
    vLedSet (3、0);
    vLedSet (4、0);
    vDelay (100000);
    vLedSet (0、1);
    vLedSet (1、1);
    vLedSet (2、1);
    vLedSet (3、1);
    vLedSet (4、1);
    vDelay (100000);

    /*执行永远不会来这里!!! *
    //返回(0);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yue、

    如果您直接使用 Halcogen 启动代码以及上面发布的信息中的任何特殊更新、我可以在接下来的几天内在工作台上查看这一点。 如果您使用的是特定的 TI 开发板(EVM 或 Launchpad)、或者您使用的是自己的定制 PCB、您能否再次提醒我?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Chuck、

    我正在 TI TMDXRM57LHDK 上测试 STC 模块 、如果您需要、我可以与您共享我的 IAR 项目!

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

    您好、Yue、

    我没有 IAR 设置、但如果您可以共享源文件和 halcogen 文件(halcogen 项目的.hcg 和.dil 文件)。 然后、我可以设置项目并将其导入到 CCS 中。 如果我们无法重现问题、我将研究如何设置 IAR 工作区并执行同样的操作。 我还将了解我们的软件团队是否可以查看、因为他们应该具有 IAR 工作台设置。

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

    你好、Chuck、

    我已经上传了我的 HCG 和 IAR 项目。 我希望这能对您有所帮助!

    BR。

     

    e2e.ti.com/.../3858.IAR.7z

    e2e.ti.com/.../4667.STC-test.7z

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

    你好、Chuck、

    您是否查看了我上周共享的项目? 它在 IDE 中是否起作用?

    巴西!

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

    我对拖延表示歉意。 我已经和我的一位同事讨论过这个问题、他们已经提议调试这个问题、因为他们的工作台上既有 RM57 HDK 硬件、也有 IAR IDE 设置。 他们应该能够在第二天左右的时间内与您联系。