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.

[参考译文] TMS320F28027:MCU 复位意外

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/853939/tms320f28027-mcu-reset-unexpected

器件型号:TMS320F28027

大家好、

我的客户想要检查如果他们启用中断但未初始化 PIE 矢量表会发生什么、他们取消注释以下函数、但启用 PWM 中断并禁用看门狗、当他们运行从 闪存引导的代码时、 然后 将生成 CPU 复位、 问题是为什么会生成 CPU 复位、因为已经禁用了看门狗并且输入电压稳定在3.3V? 它应该运行到某些未知区域、并且不会生成 CPU 复位。

它可以使用附加的示例代码重现此问题、并在 while 函数之前在代码中设置断点。 或者在未连接到 CCS 的情况下运行代码并监控复位引脚的波形。

// InitPieVectTable();

//PieVectTable.EPWM1_INT =&epwm1_timer_ISR;

PieCtrlRegs.PIECTRL.bit.ENPIE = 1;

PieCtrlRegs.PIEIER3.bit.INTx1 = PWM1_INT_ENABLE;

 e2e.ti.com/.../Example_5F00_2802xEPwmTimerInt.7z

// InitPieVectTable();

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

    您好!

    上述操作不应在任何应用中完成。 客户是否有此场景的任何用例? 他们是否尝试轮询中断标志? 即使不在 PIE 和 CPU 级别启用中断、也可以轮询外设级别的标志。

    谢谢

    Vasudha

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

    Vasudha、

    是的、我 同意  此场景不应有任何用例、实际上客户在其产品中遇到问题、 他们正在评估软件中是否存在任何潜在风险、 他们只是想让我们解释为什么在这种情况下 MCU 将被复位、而不是代码跳转到 某个未知区域而不进行复位?

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

    您好!

    您能否添加引导 ROM 符号并检查正在执行哪个代码? 同时检查 CpusysRegs.RESC 寄存器中的复位原因。

    谢谢

    Vasudha

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

    Vasudha、您好!

    复位后、代码将始终跳转到主函数、并且我 没有找到复位原因寄存器 CpusysRegs.RESC。  

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

    您好!

    您是否能够解决此问题? 如果不是、我们可以通过邮件对此进行讨论。

    我在 F2837x 中尝试了上述情形、我的代码中也看到了器件复位。 代码跳转至引导代码。

    您是否尝试加载引导符号并检查了执行的确切停止位置?

    谢谢

    Vasudha