3

我可以第一次对这个项目进行编程和调试。但问题是我无法重新编程或再次调试它。芯片上没有引导加载程序。与该芯片通信的唯一方法是 SWD。作为调试器,我使用的是 Atmel ice。微芯片是 SAMD21E16B-U。该项目由Atmel Start创建。Visual Studio 用作导入项目的 IDE。

再次调试后,错误为:

在此处输入图像描述

  • 问题可能是因为设置。我不确定我错过了什么。我按照visualGDB 网站导入了这个项目。
  • 我检查了电源连接。
  • visualgdb 调试设置上没有“重置下连接”选项。但是,该选项在 STM 芯片上可用。 在此处输入图像描述

如果你能指导我如何重新编程这个芯片,我真的很感激?或者我应该寻找哪些信息。提前感谢您提供任何有用的建议。

4

1 回答 1

0

以下步骤解决了我的问题。我认为擦除我的芯片有助于重新编程芯片。我不确定究竟是哪一步导致了错误。但是在这些步骤之后,我没有得到那个错误。

  • 选择正确的芯片:samd21e16b 而不是 samd21e16b-U (第一个选择是基于原理图。我的原理图不正确(查看我们板上的物理芯片或使用微芯片工作室。微芯片工作室为我检测到正确的芯片). 我在创建项目时选择了不正确的设备(例如,我们的设备有不同的 SRAM、Flash 和包。))。然后,我需要重新设置并选择正确的芯片。
  • 通过微芯片工作室擦除芯片并能够对其进行重新编程。所以,我正在使用微芯片工作室擦除芯片并返回到视觉工作室,然后重新编程或调试它
  • 检查电源连接(通过 SWD 连接器连接 Vcc 3.3 并确保在调试前 Atmel ice 上的绿灯亮起(Atmel ice 上的绿色 LED 显示芯片电源正常且正确),我应该确保我的芯片是通过USB连接到电脑的。可能你的芯片不同来供电)
  • 我没有将调试器从 Atmel ice 更改为 J-Link,但这是 visualGDB (sysProgs) 支持团队提到的解决方案。我只会简单地添加他们的报价。对于想要通过visual studio解决问题并重置芯片的人可能会有所帮助。但是我没有更改我的调试器或没有配置 openOCD。我使用了微芯片工作室并重置了芯片。

VisualGDB 支持团队:这看起来像是设备连接问题,而不是 VisualGDB 特定的问题。我们最好的建议是尝试使用 Segger J-Link。它带有自己完全支持的 OpenOCD 替代品,通常在许多边缘情况下效果更好。VisualGDB 支持 OpenOCD 和 J-Link 软件,因此您之前使用的所有功能将继续以相同的方式工作。VisualGDB 不直接管理重置/擦除。它只是启动处理与目标的低级通信的开源 OpenOCD 工具。您可能能够通过编辑 OpenOCD 脚本文件来配置 OpenOCD 以更改重置行为,但是,这需要您自担风险,并且可能需要对 OpenOCD 内部进行广泛研究。如果您正在寻找一种简单的开箱即用解决方案,

于 2021-09-09T02:37:14.940 回答