Hi Leute, ich habe da mal ne Frage. Ich prorgammiere mit CodeVison und habe als µC einen atmega162 – 512 Bytes EEPROM – 1K Bytes Internal SRAM nun benötige ich einen großen char arry (char temp[400]). nun bekomme ich ein warning beim compilieren und zwar, dass mein Data Stack wohl voraussichtlich 435 bite(s) benötigt, was aber nicht so eingestellt ist. ich kann nun in den einstellungen meine Data Stack size beliebig einstellen, z.B. von 128(voreinstellung) auf 450 und die Warnmeldung kommt dann nicht mehr. Aber was verändere ich damit und was für vor bzw nachteile hat es die Data Stack size größer bzw kleiner zumachen. Gruß Olli
@ Olli (Gast) >ich habe da mal ne Frage. Ich prorgammiere mit CodeVison und habe als µC >einen atmega162 >– 512 Bytes EEPROM >– 1K Bytes Internal SRAM >nun benötige ich einen großen char arry (char temp[400]). nun bekomme Welcher wieviel Speicher benötigt? >ich ein warning beim compilieren und zwar, dass mein Data Stack wohl >voraussichtlich 435 bite(s) benötigt, Kaum. Eher Bytes. >einstellen, z.B. von 128(voreinstellung) auf 450 und die Warnmeldung >kommt dann nicht mehr. Aber was verändere ich damit und was für vor bzw >nachteile hat es die Data Stack size größer bzw kleiner zumachen. Weisst du was eine Stack ist? Dort werden lokale Variablen von Funktionen gespeichert. MFG Falk
> Welcher wieviel Speicher benötigt? ich beötige den array um später eine sms im pdu formart auszulesen, sprich es werden bis zu 400 einzelne charaters hineingeschrieben. >Kaum. Eher Bytes. mein fehler. du hast recht BYTES. >Weisst du was eine Stack ist? habe ich mir eben noch mal durchgelesen und wenn ich das richtig verstanden habe ist es so, dass wenn mein stack groß ist es länger dauert bis ich wieder auf meine variable zugreifen kann, als wenn mein stack klein ist. richtig?! gruß olli
@ Olli (Gast) >> Welcher wieviel Speicher benötigt? >ich beötige den array um später eine sms im pdu formart auszulesen, >sprich es werden bis zu 400 einzelne charaters hineingeschrieben. War das die Frage? >>Weisst du was eine Stack ist? >habe ich mir eben noch mal durchgelesen und wenn ich das richtig >verstanden habe ist es so, dass wenn mein stack groß ist es länger >dauert bis ich wieder auf meine variable zugreifen kann, als wenn mein >stack klein ist. >richtig?! Vollkommen falsch! Der Stack ist dein Speicher für lokale Variablen und Rücksprungadressen bei Funktionsaufrufen, parallel auch für Interrupts. Wenn dein Array als lokale Variable im main() definiert ist landet sie auf den Stack. Ist sie aber als globale Variable definiert (ausserhalb von main ) landet sie auf dem Heap (der aber logischerweise auch im RAM liegt). Ist aber am Ende egal. Dreh einfach die Grösse des Stack hoch und gut ist. Das ist NICHT langsamer als ein kleiner Stack. MFg Falk
Ok danke, fürs erste reicht mir die antwort erstmal aber ich verspreche mich da bei gelegentheit reinzulesen. gruß olli
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.