Forum: Mikrocontroller und Digitale Elektronik Variablenverwaltung MSP430


von Claudia (Gast)


Lesenswert?

Hallo zusammen,

Benutzte den MSP430F2074...
Wollte mal nachfragen, wie die Variablen abgespeichert werden.

Wenn ich Variablen global deklariere, also Variablen sollen nach 
Unterprogrammsprung gespeichert bleiben, werden sie im RAM abgelegt.

Wenn ich Variablen nur in einem Unterprogramm benötige und diese dort 
deklariere, wo werden da die Variablen abgelegt?

Wenn ich z.B. ein BYTE-Array mit 1000 werden deklarie, beschwert sich 
der
Compiler nicht...

Wo kann ich das im USERGUIDE nachlesen?
Wäre sehr dankbar, wenn Ihr mir helfen könntet...

Grüße
Claudia

von Jörg S. (joerg-s)


Lesenswert?

Verstehe ich nicht ganz. Variablen werden IMMER im RAM abgelegt, wo 
sonst? Oder geht es um den Stack?

>MSP430F2074...
Vermutlich eher MSP430F2274?

>Wo kann ich das im USERGUIDE nachlesen?
Ich vermute deine Fragen ziehlen eher auf den Code, also den Compiler 
ab.

von Claudia (Gast)


Lesenswert?

Im erzeugten MAP-File wird aber nichts angezeigt, d.h. ich habe noch ca. 
150 Byte frei aufn RAM, wenn ich jetzt mein Unterprogramm erzeuge und 
dort ein byte-Array von ca. 150 Werten beschreibe, ändert sich nichts an 
der Anzeige im map-file ??

von Tobias K. (kurzschluss81)


Lesenswert?

Hast du das Unterprogramm auch schon eingebunden in dein Projekt?

von zigzag (Gast)


Lesenswert?

Variablen in Unterprogrammen, sofern (in C) nicht als "static" 
deklariert, werden auf dem Stack angelegt und
erscheinen deshalb nicht im MapFile. Sie haben keine festen
Adressen und werden relativ zum Stackpointer adressiert.

Zu grosse lokale Variablen werden mit Stacküberlauf zur laufzeit
bestraft...

ZZ.

von Vlad T. (vlad_tepesch)


Lesenswert?

wenn dir dein Mapfile allerdings sagt, dass du nur noch 150Byte frei 
hast.
und du im Unterprogramm aber 1000 auf den Stack packen willst, 
überschreibt dir der Stack höchstwahrscheinlich deine Daten

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
Noch kein Account? Hier anmelden.