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 :)
Gast
#436837
Program-Code!
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?
Ich stelle den Quelltext hier mal rein vielleicht kann dann ja jemand helfen.
Gast
#437293
Stack Überlauf? MW
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.