0

我正在尝试使用 AVR Dragon 和 AVR Studio 6 调试 ATmega88。该程序是用 C++ 编写的。每次我尝试调试程序时,都会出现一个消息框,说

“开始调试”:“AVR Dragon (00A2000006C63) 上的 ISP 不支持调试。设备仅被编程。使用 Start without Debugging 来避免此消息。”`

我认为 Dragon 支持通过 ISP 进行调试,因为我可以在 AVR Studio 4 中调试用汇编程序编写的程序。程序是:

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
    DDRC = 0xFF;
    PORTC = (0 << PC4);
    while(1)
    {
        PORTC = (1 << PC4);
        _delay_ms(1000);
        PORTC = (0 << PC4);
        _delay_ms(1000);
    }

    return 0;
}

但这不应该是问题。该程序本身有效。

4

3 回答 3

2

要使用 Dragon 和 AVR Studio 6 进行调试,您需要一个支持debugWIRE的电路。裸机 ATmega 或修改后的(带有自动重置剪切/禁用)的 Arduino 也可以。

然后,在您的项目(不是解决方案)的设置中,您需要将 Tool - Selected debugger 更改为 AVR Dragon 和 Tool - Interface to debugWIRE。后者是我花了一些时间才找到的,只要将其设置为 ISP,您就永远无法调试。

完成这些更改后,您将在尝试开始调试会话时收到启用 debugWIRE(按是)的问题,之后您需要重新启动电路并按 OK。

在 debugWIRE 模式下,您无法更改其上的任何设置,因为 ISP 已禁用。要退出 debugWIRE 模式,您需要处于调试模式(因此,如果您停止它,只需重新启动它)然后选择 Debug - Disable debugWIRE 并关闭,它将恢复到 ISP 模式。

于 2013-01-16T09:34:54.847 回答
2

您可以使用 debugWIRE 使用 Dragon 进行调试。这使用电源、接地和复位线。通常 ISP 和 debugWIRE 物理连接都是建立的,因为它们在同一个连接器上。不过,您必须告诉软件退出使用 ISP 并开始使用 debugWIRE。自己做这件事还不够聪明。

于 2012-09-12T00:02:10.543 回答
1

你可以在 AVR Studio 的模拟器中调试程序,但是用 ISP 调试硬件是不可能的。如果您想使用 AVR Dragon 调试您的应用程序,您必须使用 JTAG。

此外,您的程序是用 C 而不是 C++ 编写的,并且不会按预期工作。要设置位,PORTC您做对了,但要清除它,您必须这样做

PORTC &= ~(1 << PC4); // Clear PC4, keep all the others

它将与and进行逻辑and运算PORTC11110111

编辑:实际上,您还应该设置

PORTC |= (1 << PC4); // Set PC4, keep all the others

否则你只会覆盖整个端口

于 2012-08-22T20:24:29.157 回答