0

AVRDragonとAVRStudio6を使用してATmega88をデバッグしようとしています。プログラムはC++で記述されています。プログラムをデバッグしようとするたびに、メッセージボックスが表示されます。

"デバッグの開始": "AVR Dragon(00A2000006C63)上のISPはデバッグをサポートしていません。デバイスはプログラムされているだけです。このメッセージを回避するには、デバッグなしで開始を使用してください。"`

AVR Studio 4のアセンブラで記述されたプログラムをデバッグできるため、DragonはISPを介したデバッグをサポートしていると思います。プログラムは次のとおりです。

#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

debugWIREを使用して、Dragonを使用してデバッグできます。これは、電源、アース、およびリセットラインを使用します。通常、ISPとdebugWIREの物理接続は、同じコネクタ上にあるため、両方とも行われます。ただし、ISPの使用を終了し、debugWIREの使用を開始するようにソフトウェアに指示する必要があります。それ自体を行うのは賢いことではありません。

于 2012-09-12T00:02:10.543 に答える
2

DragonとAVRStudio6でデバッグするには、debugWIREをサポートする回路が必要です。裸のATmegaが機能するか、変更された(自動リセットカット/無効化された)Arduinoも機能します。

次に、プロジェクトの設定(ソリューションではない)で、ツール-選択したデバッガーをAVRドラゴンに変更し、ツール-インターフェースをdebugWIREに変更する必要があります。後者は私が見つけるのに時間がかかったものであり、それがISPに設定されている限り、デバッグすることはできません。

これらの変更が行われると、セッションのデバッグを開始しようとしたときにdebugWIREを有効にする([はい]を押す)という質問が表示されます。その後、回路の電源を入れ直して[OK]を押す必要があります。

While in debugWIRE mode you can't change any settings on it as ISP is disabled. To exit debugWIRE mode you need to be in debug mode (so just start it again if you stopped it) and then select Debug - Disable debugWIRE and close, and it'll revert back to ISP mode.

于 2013-01-16T09:34:54.847 に答える
1

AVR Studioのシミュレータでプログラムをデバッグすることはできますが、ISPを使用してハードウェアをデバッグすることは不可能でした。AVR Dragonを使用してアプリケーションをデバッグする場合は、JTAGを使用する必要があります。

また、プログラムはC ++ではなくCで記述されているため、期待どおりに機能しません。あなたのビットを設定するにPORTCはそれを正しくやっていますが、それをクリアするにはあなたがしなければなりません

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

とで論理and演算を実行PORTCします11110111

編集:実際には、あなたも設定する必要があります

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

それ以外の場合は、ポート全体を上書きします

于 2012-08-22T20:24:29.157 に答える