debugWire e AVR Dragon

Sezione dedicata ai Microcontrollori e ai Sistemi Embedded

debugWire e AVR Dragon

Postby flz47655 » 09 Nov 2012, 14:06

Ciao a tutti,
Ho comprato un AVR Dragon e sono alle prime armi col debug degli AtMega tramite debugWire.
Ho fatto delle prove con Atmel Studio 6 SP1 ed un AtMega48 su un circuito esterno alimentato a parte, ho seguito i collegamenti descritti nella guida, dopo aver impostato il fuse DW riesco a far fermare l'esecuzione sui breakpoint ma si blocca tutto all'istruzione _delay_ms (dentro a __builtin_avr_delay_cycles) e non riesco a fare un semplice debug passo passo di tutte le istruzioni di un semplice blink

Code: Select all
#define F_CPU 8000000UL      // F_CPU tells the compiler that our crystal is an 16Mhz one so it can generate an accurate delay,
                     // must be declared above delay so delay knows what is the value of F_CPU
#include <util/delay.h>     // Contains some delay functions that will generate accurate delays of ms and us
#include <avr/io.h>

int main(void)
{
    while(1)
    {              
      //This gives us an infinite loop, there should always be an infinite loop in your code,
      // because micro-controllers cant return from main to anywhere and that will give you bad results and unpredicted behaviour
      PORTB |= (1<<PB0);  // Turn led on, this is the led included in the arduino(digital pin 13)
      _delay_ms(1000);    // Wait 1 second
      PORTB &= ~(1<<PB0); // Turn led off
      _delay_ms(1000);    // Wait another second      
    }
}


Non riesco a raggiungere l'istruzione che spegne il led su PB0 se eseguo passo passo il codice mentre se imposto direttamente un breakpoint su tale istruzione si ferma correttamente.

Non so proprio dove sbattere la testa.. sul pin reset c'è un pulsante ed una resistenza di PullUp di 10k.

Ciao e grazie a tutti
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: debugWire e AVR Dragon

Postby flz47655 » 09 Nov 2012, 17:25

Dalla documentazione di _delay_ms: The maximal possible delay is 262.14 ms / F_CPU in MHz.
Proverò stasera abbassando il delay a 32mS, però il codice sembra funzionare perfettamente se non avviato passo-passo..
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: debugWire e AVR Dragon

Postby deluca » 09 Nov 2012, 22:27

flz,
io non ho mai usato il Dragon AVR per debuggare e mai dovuto programmare in HV o rispristinare i fuse....

uso i tracer-debug jtag solo per gli Xmega e Arm con il Keil.... lì si che c'è necessità.
ciao
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: debugWire e AVR Dragon

Postby flz47655 » 09 Nov 2012, 22:47

Ok, grazie lo stesso.

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: debugWire e AVR Dragon

Postby flz47655 » 11 Nov 2012, 11:15

Nel caso qualche lettore avesse trovato lo stesso problema riporto la risposta che mi è stata data su AVRFreaks:

The trick with debugging is to "run-until" or place a breakpoint and "run".
It is a feature of avr-gcc and the way that it inlines some 'calls'


Purtroppo è una feature veramente fastidiosa..
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16


Return to Microcontrollori e microprocessori

Who is online

Users browsing this forum: No registered users and 6 guests