Hallo, ich habe ein Problem ich habe ein Programm geschrieben für einen mega168, und habe jetzt große Schwierigkeiten einen Fehler zu fixen. Ich habe meiner Meinung noch etwas an Ressourcen frei! Program Memory Usage : 9842 bytes 60,1 % Full Data Memory Usage : 852 bytes 83,2 % Full EEPROM Memory Usage : 10 bytes 2,0 % Full Was mein Ihr zur Speicherbelegung? Ich versuche denn Fehler zu erklären. Alles hat angefangen das ab und zu Bits in meinem Ausgangs Byte gesetzt wurden ohne das ich es wollte. Jetzt wird das Array mit den Daten meines Display das ich mit 60 Byte großzügig gewählt habe (es werden eigentlich nur 49 Byte benötigt) bis zum letzten Byte beschrieben. Irgendwie deutet alles auf einen Zeiger hin aber ich finde keinen Übeltäter. Wie kann ich so einen Fehler schnellstmöglich finden. Kann man auch Breackpoints auf Schreibzugriffe auf einen Gewisse Adresse anlegen? Wie würdet ihr vor gehen? Vielen Dank schon mal Daniel
keinen Plan schrieb: > Data Memory Usage : 852 bytes 83,2 % Full Im Ram befindet sich auch der Stack, und dieser muss mit den verbleibenden 16,8% (172 Bytes) auskommen.
> Data Memory Usage : 852 bytes 83,2 % Full
Mit der Restlichen Beschreibung ein klassischer Fall von
Speicherüberlauf.
Ist das zu Knapp? Könnte das schon mein Problem verursachen? Danke Daniel
keinen Plan schrieb: > Ist das zu Knapp? In deinem Fall: Ja. > Könnte das schon mein Problem verursachen? Ja.
>> In deinem Fall: Ja. > > Für wenn nicht? Für jemanden der auf den zur Laufzeit verbrauchten Speicher achtet.
g457 schrieb: > Für jemanden der auf den zur Laufzeit verbrauchten Speicher achtet. Und wie macht man das?? Lg Daniel
In den Quelltext schauen, wie große Variablen die Funktionen anlegen, wie weit sich das aufaddiert durch verschachtelte Aufrufe, und für jeden Aufruf noch die 2 Bytes Rücksprungadresse aufaddieren.
keinen Plan schrieb: > g457 schrieb: >> Für jemanden der auf den zur Laufzeit verbrauchten Speicher achtet. > > Und wie macht man das?? Benedikt hat man ein Programm geschrieben. Geht aber nur zuverlässig wenn du nicht mit Funktionspointern arbeitest: Beitrag "StackViewer (RAM Rechner) für WinAVR"
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.