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.

[参考译文] TMS320F28388D:运行~10分钟后执行 MCU 软复位

Guru**** 2390755 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1454364/tms320f28388d-mcu-soft-reset-after-run-10mins

器件型号:TMS320F28388D

工具与软件:

你(们)好

客户报告器件软复位在运行~10分钟后、他们会执行以下调试并找到一些线索:

1.如果结构(全局变量)大小定义大于特定值,则会触发问题。  
2.如果将.bss 和.data 分配到不同的存储器扇区中、则可以解决该问题。  

我查看.cmd 文档、它表示如果使用以下格式的程序将不起作用:

.text>MSRAM

.bss>MSRAM

.data>MSRAN

应改用以下格式:

组{
.text:{}palign (8)

.bss:{}palign (8)

.data:{}palign (8)

}>MSRAM

因此、我让客户更改其原始文件:

.bss:>CPUVARIA_RAMGS PAGE =1、ALIGN (8)

.sysmen:>CPUVARIA_RAMGS page =1、align (8)

.data:>CPUVARIA_RAMGS PAGE =1、ALIGN (8)

最终目的

小程序


第1页:

CPUVARIA_RAMGS :起源….
}

UNION RUN =  CPUVALID_RAMGS

{μ A

组{
.text:{}palign (8)

.sysmem:{}palign (8)

.data:{}palign (8)

}>CPUVARIA_RAMGS

}μ A

但不管用。 我对这个问题的理解有什么问题吗?

谢谢

Joe

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

    你(们)好

    请您更新此主题。

    谢谢

    Joe

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

    您好、Joe。

    GROUP 可确保中列出的段按该顺序分配。 除了这一点,我不认为有任何差异之间的2个片段你分享。

    您是否正在使用可由多个 CPU 访问的任何共享数据结构? 能否就您所面临的问题提供更多详细信息? 您是否能够读取 RESC 寄存器以了解复位原因?

    此致、

    Veena.

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

    您好、Veena

    感谢您的答复、RESC 显示为0xC0000008、NMIWDRsn 已设置。 有关更多详细信息、我将在客户方面进行调试并向您提供反馈。

    谢谢

    Joe

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

    您好、Veena

    更新客户侧的调试进度:

    1. NMI 记录重启是由 FLUNCHR 引起的。 客户代码中没有调用 Flash_API。

    2.整个程序的全局变量为2个结构,包含所有控制变量(未初始化)

    3、整个程序只有 PWM 中断、如果 PWM 中断被禁用、复位问题发生1~2分钟、如果启用了 PWM 中断、复位问题发生~10分钟

    措施可以避免此问题:

    1.如果在主循环中阻止以下 c 语句、则不会发生问题:

    2.如果删除结构中的1个变量,则不会发生问题。

    3.如果仿真器已连接且 MCU 在调试模式下工作、则不会出现问题

    4.如果将.bss 和.data 存储到不同的 RAM 段中、则不会发生问题

    4.如果使用固定值(如"0")初始化全局变量、则不会发生问题。

    谢谢

    Joe

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="521036" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1454364/tms320f28388d-mcu-soft-reset-after-run-10mins/5594319 #5594319"]

    1. NMI 记录重启是由 FLUNCHR 引起的。 客户代码中没有调用 Flash_API。

    [报价]

    您是否从闪存运行代码? 或者闪存中是否分配了任何段?

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

    大多数代码从闪存中运行。

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

    请确认是否在闪存插件中启用了 ECC

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

    您好、Veena

    我向客户询问过、无论是否启用或禁用自动 ECC 生成、该程序都会在运行一段时间后复位。

    是否有禁用闪存 ECC 的方法?

    谢谢

    Joe

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

    您好、Joe。

    您可以在寄存器中禁用。  这是作为 GEL 的一部分完成的。 所以、在连接 CCS 调试器时、闪存 ECC 被禁用。

    您还可以查看 FLASH_ECC_REGS 以了解有关 ECC 错误的更多详细信息

    此致、

    Veena.

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

    您好、 Veena

    通过寄存器禁用 ECC 将避免重新启动、但所有 ERR 状态为0、自动刷新在 CCS 调试窗口中启用。

    可以不使用 ECC 吗? 或关于进一步调试的任何其他建议?

    谢谢

    Joe

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

    err 状态0是否已启用 ECC?

    该应用程序也可以在禁用 ECC 的情况下工作。 但建议启用该功能、以便它可以检测位错误(如果有)。

    此致、

    Veena.

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

    谢谢 Veena、、我将让客户使用 NMI API 为看门狗提供服务并再次检查 FLASH_ECC_REGS。