mikrocontroller.net

Forum: Compiler & IDEs Debugger mit globaler Variable geht nicht


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich habe ein sehr seltsames Problem mit dem gdb unter eclipse.
Ich debugge eine Testanwendung auf einem Atmega16 mit einem AVRDragon 
über
die JTAg-Schnittstelle.
Wenn ich folgendes Programm debugge, funktioniert das ganze einwandfrei:
int main(void)
{
  uint8_t global;
  DDRB = 0xff;
  for(;;)
  {
    global++;
    PORTB = global;
  }
}
Habe einen Breakpoint auf global++ gesetzt. Klappt alles wie erwartet, 
Debugger hält, Zähler wird erhöht, LEDS an PortB werden gesetzt.


Mach ich die Variable "global" global :
uint8_t global;

int main(void)
{
  DDRB = 0xff;
  for(;;)
  {
    global++;
    PORTB = global;
  }
}

geht gar nichts mehr. Das Dissassembly zeigt mir, dass nach Betreten der 
main das Programm nach .do_clear_bss_start+2 springt, und von dort 
wieder in die main, und von dort wieder nach .do_clear_bss_start+2 ...

Was soll das? Hat jemand eine Erklärung dafür oder stehe ich gerade auf 
dem Schlauch??

Viele Grüße
Frank

Autor: Eulerich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach mal die global volatile, obs dann geht oder immer noch nicht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.