断点当前不会被击中。无法在目标上设置请求的断点

时间:2015-05-27 10:15:52

标签: debugging arduino-uno atmelstudio

我正在研究Arduino Uno板最近我坚持使用我的代码,我无法使用ArduinoIde中的print()进行调试。所以我下载了AtmelStudio 6.2以进行调试。 当我设置断点并尝试构建时。我得到了警告 断点当前不会被点击。无法在目标上设置请求的断点。当前所选设备无法在运行时设置断点

请帮我解决这个问题

4 个答案:

答案 0 :(得分:1)

以下变通办法使用Atmel Studio 7上的ATMega 168P和Atmel-ICE解决了同样的问题。

1。汇编

将以下汇编程序代码插入您想要断点的位置:

asm("break");

请注意,这是一个非常难看的解决方案,并不适合所有情况。它只适用于DEBUGwire并且在任何情况下都会使程序停止,即使没有连接程序员也是如此。

2。创建新项目

在不同的位置创建新项目也有帮助。我将所有必需的文件复制到新文件夹。新位置有一个短路径(C:\ atmel \ project ...)并且不包含空格,没有变音符号等。

答案 1 :(得分:1)

我遇到了类似的问题,不同之处在于我只能在项目的原始模块中找到断点(即我创建.cproj时已经存在的断点),我后来添加的任何模块都没有停止程序在断点上放置它们。

@pafodie提到的解决方案(2)解决了这个问题,但在这个过程中我找到了一种更简单的方法:只需删除.atsuo文件。它将在以后自动重新创建,问题消失(至少在您添加更多模块之前)。似乎AS6缓存了一些在添加新文件时没有更新的东西,或者它是错误的。

答案 2 :(得分:0)

如果使用外部Makefile,请确保在-g中设置了CFLAGS(调试)标志。

否则,Atmel Studio将不知道源文件如何与已编译的二进制文件相对应。

答案 3 :(得分:0)

我可能已经找到了至少对我有用的解决方案!您需要禁用编译器优化。在 Atmel Studio 中,

  

命中Alt + F7>工具链>优化{有2个优化   窗户,但只有一个适合鞋子}}>优化级别>无

我在这里找到了它,比我做的要好:https://www.microchip.com/webdoc/GUID-ECD8A826-B1DA-44FC-BE0B-5A53418A47BD/index.html?GUID-8FF26BD2-DBFF-48DD-91FB-8585D91A938D图5