was ist die "Data Stack size"

Gast #713042
Lesenswert?
• ▲
▼
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
#713054
Lesenswert?
• ▲
▼
@ 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
Gast #713129
Lesenswert?
• ▲
▼
> 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
#713217
Lesenswert?
• ▲
▼
@ 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

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.