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.

[参考译文] TMS320F28386S:启动至闪存后无法正常工作

Guru**** 2535150 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1083017/tms320f28386s-boot-to-flash-does-not-work-after-power-up

部件号:TMS320F28386S

我们正在使用默认 GPIO 启动模式,两个引脚(GPIO72和 GPIO84)都设置为高。 因此,引导模式应为“引导至闪存”。

在 OTP 中,GPREG 是所有的(默认)。 但闪存由 DCSM OTP 保护。 未对 CPU2和 CM 编程。 闪存中的程序启动应为默认值(0x80000)。 链接器选项“entry_point”被设置为 code_start,我们正在使用 TI 的 f2838x_codestartbranch.asm 禁用监视程序。

使用 JTAG 加载程序后,其工作正常。 但在关机后重启后,PC 仍处于地址范围内,根据 TRM,该地址范围意味着 PC 处于“等待启动模式”。

此外,在关机后再开机时,盲板 LED 示例的闪存配置也无法启动。

我的问题:

  • 是否需要在 OTP 寄存器中明确将闪存入口点(BOOTDEF)设置为0x80000和所有其他 GPREG 配置(即使我需要默认启动模式)?
  • 是否要启动或刷新 CPU2和 CM,以使 CPU1正确启动?
  • 我可以将“闪存启动”选项用于安全闪存,还是必须使用“安全闪存启动”?
  • 还有什么问题呢?

请提前感谢您的回答。

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

    您好,

    回答您的问题:

    1.不,如果您有配置为从 Flash 启动的 PIN,我认为您不需要将闪存入口点设置为0x80000。  

    2.不需要刷新 CPU2和 CM。

    3.复制了我们的安全专家 Vivek Singh 进行确认。

    很奇怪为什么 PC 会保持等待启动模式。 让我与专家核实一下,同时您能否发送有关 PC 卡滞在哪个位置的详细信息?

    此致,

    尼拉夫

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

    你好,尼拉夫

    感谢您的回答。 重启并重新连接后,PC 处于0x3FD2AE 状态,恢复后 PC 保持在0x3FB114 (根据 TRM 为 Silicon revA 的等待启动模式)。

    祝您好,Steven

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

    您好,Steven,

    当您在关机后再开机并重新连接后进行连接时,显示0x3FD2AE 的 PC 会提示它卡在 BootROM 中。 连接调试器并恢复调试器后,它将转至独立启动或等待启动,具体取决于 EMU bootpin 配置密钥。

    我需要与 bootrom 专家核实,以确定地址0x3FD2AE 的位置以及当您在电源关闭后连接时 PC 在该地址的原因。

    此致,

    尼拉夫

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

    0x3FD2AE 是启动 ROM 代码的开始。默认情况下,CCXML 包括 GEL 文件。 在与 CCS 进行目标连接时,GEL 文件将重置 CPU,因此 PC 将指向启动 ROM 代码的开头。

    要调试问题,请删除 gel 文件并连接到 CPU。现在请检查 PC 指向的位置。

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

    感谢您的回答。

    我删除了.gel 文件。 我通过 JTAG 编程,恢复,断开,电源循环和连接。 然后,PC 仍指向0x3FB114。
    我还附加了两个测量值,显示了两个启动引脚和加电时的 XRS 信号(左启动引脚0和 XRS,右启动引脚1和 XRS)。 我认为这是可以的,只是为了确保 Bootpins 是正确的。

    祝您好,Steven

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

    您能找出问题所在吗?

    我在新设备上测试了程序,但 OTP 尚未编程。 将所有 OTP 寄存器保留为虚拟部分有效,同时也保留启动工作。 因此问题出在安全设备的任何地方。

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

    OTP 中的安全配置可能存在问题。 您需要审查并确定问题。 很遗憾,我们无法调试安全代码以确定问题。

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

    我可以解决这个问题。 如果 RAM/闪存扇区属于一个区域,则如果设置了密码(TRM 中的表6-1),则另一个区域中的 GRAMRAMRAMx/GRABSECTx 位不能为0b11 (如旧 DSP 中的情况)。