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 :)
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.