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.

[参考译文] MSPM0G3519:错误交换闪存组

Guru**** 2455560 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1491768/mspm0g3519-error-swap-flash-bank

器件型号:MSPM0G3519
主题中讨论的其他器件:SysConfig

工具与软件:

我将使用 CSC 策略实施固件更新。 In SysConfig 、在下面 配置 NVM (NONMAIN) 部分中、我启用了 "启用 CSC 策略" "启用闪存组交换策略。" 然后、我对微控制器编程、选择 "擦除主存储器和 NONMAIN 存储器" 正方形数法。

该问题发生在 CSC 代码尝试交换银行时;特别是在调用后、DL_SYSCTL_issueINITDONE()如下所示DL_SYSCTL_executeFromUpperFlashBank()

 if(bankswap == SWAP) 
{
    DL_SYSCTL_executeFromUpperFlashBank(); // Set swap bank0 to bank1
    delay_cycles(160);
    DL_SYSCTL_issueINITDONE(); // Issue INITDONE to trigger System Reset -> swap to bank1
}
else
{
    DL_SYSCTL_issueINITDONE(); // Then issue INITDONE to trigger System Reset
}


调试时、遇到错误:

不能单步目标程序:(错误-2134 @ 0x0)无法控制器件执行状态。 重置设备、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电、并/或尝试更可靠的 JTAG 设置(例如、降低 TCLK)。 (仿真软件包20.1.0.3372)
错误:(ERROR -1001 @ 0x0)该器件不支持所请求的操作。 (仿真软件包20.1.0.3372)
停止目标 CPU 时出现问题:(错误-2064 @ 0x0)无法读取器件状态。 重置设备、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电、并/或尝试更可靠的 JTAG 设置(例如、降低 TCLK)。 (仿真软件包20.1.0.3372)
错误:与 MSPM0内核的连接失败。 可能的根本原因:1)使用密码禁用或启用了 NONMAIN 中的调试访问。 2)外设配置错误(例如看门狗或时钟不正确)。 要查看有关此问题的更详细诊断、请按下"Read boot diagnostics"(读取引导诊断)按钮。

当调试未激活时也会发生该错误、因为微控制器保持锁定状态。

有人能帮我吗? 幻灯片
谢谢你

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

    请检查、可能是由于此问题:

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

    感谢你的帮助。

    我试图在坚持限制的情况下解决这个问题、但没有奏效。 后来、我发现了问题:这是因为我使用自定义链接器脚本将 CSC 代码编程到第二个组 中、该脚本为该组中的 CSC 代码定义了一个专用存储器区域。 这使得中断矢量表不同于第一个存储体中的表、因此导致了错误。 基本上、两家银行的 CSC 代码不同、正是这一点导致了这个问题。