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.

[参考译文] MSPM0G1507:目标指示先前的 SWD 请求存在错误情况。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1449022/mspm0g1507-the-target-indicates-there-is-an-error-condition-from-a-previous-swd-request

器件型号:MSPM0G1507
主题中讨论的其他器件:UNIFLASH、、 MSPM0G3507SysConfig

工具与软件:

Hallo,

我`ve 使用 CCS Theia 1.5.1已有一段时间、没有任何问题。 上周、我安装了 CCS 20并导入了 Theia 1.5.1项目、未出现任何问题。

在我`ven`t CCS 20开始我的第一个调试会话(闪存下载完成)之后、我无法再启动任何调试会话。 我´ve 收到错误"目标表明先前的 SWD 请求存在错误情况"。

´ve、我在调试同一器件之前至少已经调试了1000次。 相同设置-> XDS110。 我安装 CCS20后出现上述问题。

我`m NONMAIN 是´m 我想禁用 BSL、因为我使用 PA18进行其他用途。 我已`ve 调试会话配置中的 Erase MAIN 和 NONMAIN。

自`ve 以来、我曾尝试过以下各项:

1. CCS 20中通过脚本恢复出厂设置->如许多其他线程中所述->相同错误

2.通过在线工具恢复出厂设置

3.通过 Uniflash 8.8.1恢复出厂设置->相同错误

4.将板上的芯片(拆焊/焊接)更换为新芯片。 我可以按照上面提到的方式对它进行一次准确编程->然后出现相同的错误

5.在启动时下拉 PA18以规避 BSL 调用->相同错误

在 CCS 20中是否有关于 Theia 1.5.1的任何更改?

谢谢!

此致

Steffen

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

    Steffen、您好!

    您是否也更新了项目使用的 SDK 版本、或者您是否只是更新了 CCS 版本并导入到新的 CCS 安装中?

    我想确保问题在于 CCS Theia、而不是 SDK。 您还可以选择尝试在原有 CCS 中编译该项目、而在无法工作的新 CCS 中编译该项目、然后使用 beyondcompare 之类的东西比较输出。 如果使用相同的 SDK、则源代码应保持不变、而编译的输出应保持不变。

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

    尊敬的 Dylan:

    感谢您的快速回复。

    I`ve 还将 SDK 从2.2.0.05更新为2.3.0.07并将 SYSCONF 从1.21.1更新为1.22.0。

    编译器仍然是 TI CLANG 4.0.1。 LTS。

    ´ve 我没有正常工作的设备。 我必须订购新的 MSPM0G1507 ->我已经订购了。

    我还`ve 通过 sysconf 禁用自动链接器文件创建功能、以便定义我自己的链接器文件。 我需要在闪存中再增加一节用于 EEPROM 仿真。

    此致

    Steffen

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

    我认为没问题、感谢您的更新。 当您有新器件尝试该实验时、请告知我。

    到目前为止、我还没有看到类似这样的其他投诉、因此我不怀疑这纯粹是新工具安装的问题、但我们可以通过进一步测试和使用上述测试检查工具来排除这种问题。  

    我假设您的定制链接器在这段时间内根本没有更改? 我想排除这里的所有其他变量。 如果您愿意、可以在此处发布链接器、以便我简短地检查一下、看看是否有任何看起来存在问题。

    此外、MSPM0G1507和 MSPM0G3507的存储器布局相同、因此、如果您手头有 LaunchPad、应该可以在两个器件上实现相同的行为。

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

    另一条要注意的是、我很好奇、如果您尝试使用 CCS 连接到 CS_DAP 和 SEC_AP、是否能够连接、或者这些连接也会失败?

    您是否已检查从早期工具链生成的二进制文件与新工具链生成的二进制文件是否相同?

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

    尊敬的 Dylan:

    是的、链接器文件保持不变。 这里没有变化。 只有工具链和 CCS。 它可能是工具链或 SYSCONF 生成的文件。

    我`ve LaunchPad MSPM0G3507。 我´ll 尝试一下。

    我要`m 的是:

    1.使用 CCS 20

    2.切换回 SDK 2.2.0.05和 SYSCONF 1.1.21.1  

    3.按我通常的方式进行构建和运行

    n´t 在启动调试会话时是否检测到器件? 我可以在不更改工程设置的情况下在 MSPM0G3507上运行 MSPM0G1507六文件吗? 我希望更改尽可能小。

    我`ll 试一下...

    我的链接器文件:

    e2e.ti.com/.../MSPM0G1507.zip

    谢谢!

    此致

    Steffen

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

    如何通过 CS_DAP 和 SEC_AP 进行连接?

    我没有比较 hexfiles。 但我会的。 我使用新旧 SDK 和 sysconf 对其进行编译。

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

    hexfiles 之间的差异非常小:

    e2e.ti.com/.../Hexfiles.zip

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

    很有魅力 这里没有问题、但硬件不同。 在 LaunchPad 上、PA18n`t Ω 用于其他目的。

    如果有一个拳击:

    我的电路板处于 BSL 模式。 PA18在启动时为高电平。 这会调用 BSL 吗?

    为什么它现在位于 BSL 中? n`t CCS 20不会清除或写入 NONMAIN、因此无法禁用 BSL。

    我`ve 附加了我的目标配置并启动会话

    e2e.ti.com/.../targetConfigs.zip

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

    `ve、为了获得与电路板上相同的条件、将 LaunchPad 上的 PA18拉至高电平、但仍然可以对 LaunchPad 进行编程。

    我`ll 必须等到我收到样片...

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

    Steffen、您好!

    感谢您在这里发布您的信息、这对您有很大帮助。 通过 beyondCompare、我可以看到.hex 文件是相同的。 因此、只要您为我提供了正确的文件、这些文件就不会是您问题的根源。 此外、查看您的链接器文件、我认为这也没问题、我高度怀疑这会导致任何问题。

    为了明确结果、您的意思是在 CCS20中使用旧 SDK +旧 SysConfig 时、示例按预期正常工作而不会出现问题、对吗?

    要回答上述问题:

    1) 1)如何访问 CS_DAP 和 SEC_AP?  

    您可以在 CCS20中执行此操作、方法是转到调试选项卡并在连接器件的情况下启动无项目调试。 然后、您可以右键点击"Cortex_M0P"、然后点击"Show all cores"。 现在应显示 CS_DAP_0和 SEC_AP。 现在、您可以右键单击并点击"Connect"。 假设器件正常工作且硬件正确、您应该始终能够连接到 CS_DAP。 我经常使用这个来测试器件是否完全处于活动状态。

    2) 2)是否在调试会话开始时检测到器件?

    虽然 CCS 可以在您将 LaunchPad 与 XDS110搭配使用时获取器件类型、但它不会自动检测连接的器件并为您进行切换。 为了确保为正确的器件生成链接器、您可以打开 SysConfig、展开右上角的器件视图、然后点击 SWITCH 以更改器件、并确保选择正确的器件。

    3) 3)我的 PA18在启动时被拉高、该命令是否调用 BSL?

    是的。 您需要禁用 BSL 调用引脚、或通过重新编程 NONMAIN 来更改它。 请注意、如果您尝试在已使用将 PA18拉至高电平的硬件时更改此设置、则仍会以 BSL 模式启动、并且需要复位器件以使 BSL 调用禁用生效。  

    我还记得您提到 CCS 20无法清理或写入 NONMAIN、因此无法禁用 BSL -查看 launch.json 文件、看起来 MAIN 和 NONMAIN 都设置为被擦除。 您可以通过转至工程属性->调试选项卡->选择类别中的 MSPM0闪存设置->选择擦除配置下的仅擦除主存储器来仔细检查和更改此设置。

    我强烈建议检查此设置、因为您的启动文件似乎正在擦除 NONMAIN、如果您没有为其写入有效的配置、那么您将无法再访问您的设备。

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

    尊敬的 Dylan:

    新年快乐! ´ve 收到了新的样品并更换了板上的微型部件。 我´ve 使用不同的 SDK 版本和 SysConfig 版本进行了多次尝试。 我n`t 重现错误。

    `ve 我启动了调试会话并以过快的速度结束它、因此 NONMAIN 被擦除且未进行编程。 这似乎是唯一合乎逻辑的解释。 这´ve`s 奇怪的是,我在安装 CCS20后直接取得了这两次连续,但我认为,发生了什么...

    ´ve 我擦除了 NONMAIN 并将其拉出复位状态、则无法恢复微控制器? 对吧?

    感谢您的帮助!

    此致

    Steffen

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

    尊敬的 Dylan:

    ´ve 我发现了问题。 当调试会话擦除 NONMAIN 且用户代码立即通过 DL_SYSCTL_resetDevice (DL_SYSCTL_RESET_POR)启动 POR 时、器件会砖化。

    所以在启动配置中进行一个简单的 main ()调用和 NONMAIN 擦除将导致一个有缺陷的微控制器:启动调试(F5)、点击运行、您将看到上述错误代码。

    也许你可以重现它的一个你的终点?

    谢谢!

    此致

    Steffen

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

    Steffen、您好!

    感谢您在此处发布您的发现。 您是否曾尝试连接至 CS_DAP 和/或 SEC_AP? 让带砖设备更好的方法是先让设备保持复位状态、再打开设备电源、然后给设备通电、然后按照步骤恢复出厂设置、让设备保持复位状态、直到恢复出厂设置脚本提示您释放设备。

    如果您无条件地在 main 的开始处运行该"resetDevice"函数、则在我看来、器件一直无法自行复位。 如果它持续自行复位、则可以认为连接调试器失败/无法执行恢复出厂设置。

    也许我是误解了什么、如果我误解了此内容、您可以将代码片段发布在响应中。

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

    尊敬的 Dylan:

    n`t 我无法通过 CS_DAP 或 SEC_AP 进行连接。

    我不会n`t 的是、即使器件不断自行复位、调试器也会将其保持在复位状态、并且不会执行任何代码?!

    当我´m`ll`m 时、请尝试恢复出厂设置。我很高兴我´ve 找到了问题的根源。

    代码片段:

    int main (void){
     SYSCFG_DL_init ();
    while (1){
     DL_SYSCTL_resetDevice (DL_SYSCTL_RESET_POR);
    }
     
    }

    此致

    Steffen

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

    您如何确定未执行任何代码?

    使用上面显示的代码刷写器件后、器件将持续自行复位。 然后、当您尝试使用调试器重新连接时、它将无法连接、因为 POR 会导致您在顶层帖子中提到的 SWD 错误。  

    为了解决这个问题、我在上面提到过、您可以在上电之前使器件保持在复位状态、这样可以防止执行代码、然后当恢复出厂设置时、您应该不再连续复位并能够成功地对器件重新编程。

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

    好的、对! 谢谢!