www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR startet neu beim Lesen von Strings im Flashspeicher


Autor: Michael Stather (kyromaster)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ein komisches Problem beim Programmieren meines atmega32. Wenn 
ich eine bestimmte Anzahl an Strings mit dem PSTR() Makro in den 
Flashspeicher lade, startet der AVR beim Ausgeben des letzten Strings 
neu. Das ist reproduzierbar, also wenn ich einen String auskommentiere 
kann ich dafür einen neuen Einfügen. So habe ich das zumindest 
reproduzieren können.
Jetzt frage ich mich woran das liegen könnte, mein Programm ist laut der 
Ausgabe der Makefile (Standard-WinAVR Makefile) nur 23kb groß, und es 
soll ja laut AVR libc Doku nur Probleme mit Flash-Strings ausserhalb der 
64KB-Grenze geben, was für mich ja irrelevant ist.
Ich erhalte auch keine Fehler vom Linker o.Ä.
Kann mir jemand hier helfen?

Vielen Dank schonmal im Vorraus :)

Autor: unsichtbarer WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Program-Code!

Autor: Michael Stather (kyromaster)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja das sind schon ein paar Dateien, ausserdem was würde das konkret 
helfen. Ich denke ich habe das Problem oben ziemlich genau beschrieben.
Ich müsste das auch abklären (ist ein Uni-Projekt), aber wenn es 
wirklich was bringen würde... Ist aber so dass das Programm ohne die 
passende Hardware (eigene Grafikeinheit und MMC-Reader) eh abbricht.
Auf jeden Fall ist es einfach so dass anscheinend zu viele dieser PSTR() 
strings vorhanden sind.
Hat jemand Erfahrungen mit diesem Problem?

Autor: Michael Stather (kyromaster)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich stelle den Quelltext hier mal rein vielleicht kann dann ja jemand 
helfen.

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stack Überlauf?

MW

Autor: Michael Stather (kyromaster)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann man das überprüfen?
Ich habe aber keine größeren lokalen Variablen und auch keine 
Rekursionen.
Das komische ist ja auch wenn ich eine Debugausgabe auskommentiere 
erfolgt der Neustart woanders.

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.