www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Globale Variablen - Problem falls mehr als eine verwendet


Autor: Adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

ich habe ein problem mit meinem MSP430 413. Wenn ich globale Variablen
verwende, was noetig ist um funktionsuebergreifend bestimmte Werte (in
meinem Fall hauptsaechlich Schaltzustaende, aber auch Temperaturwerte
u.ae.) zu schreiben und auszuwerten, dann funktioniert das mit maximal
EINER globalen Variable.

Sobald ich eine zweite auch nur deklariere, laeuft das Programm
nichtmal an und auch im Debugger fehlen schon einige Kontrollfenster.
Mehrere Variablen innerhalb einer Funktion sind kein Problem ....

Woran koennte das liegen? Wird die Variable vielleicht im falschen
Speicherbereich angelegt, muss ich irgendwelche
Konfigurationseinstellungen in der Entwicklungsumgebung aendern?

Danke fuer Eure Hilfe!

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Adrian,

ich vermute, Deine Idee ist richtig: Der Speicherbereich für die
globalen Variablen ist ein ganz anderer als der für Variablen in den
Funktionen (dafür wird ja der Stack verwendet).

Für mich klingt es so, als gäbe es eine Überlappung mit dem Bereich,
der auch vom Monitor verwendet wird. Denn dieser ist dem Linker, der
sonst bei Überlappungen meckert, ja normalerweise nicht bekannt.

Irgendwo findet sich sicherlich eine Doku über den Monitor und die von
ihm verwendeten Ressourcen. Ich habe mir dann so geholfen, dass ich die
verwendeten Bereiche auch im Start-File der eigentlichen Anwendung
definiert habe - und schon meckert der Linker, wenn es zu Überlappungen
kommt.

Achso, es mag auch ein Blick in das Map-File des Linkers helfen, hier
werden ja alle Speicherbereiche und Variablenadressen dargestellt.
Überlappungen, die in der Anwendung selbst liegen, sollten hier zu
finden sein. Aber, wie oben gesagt, ein möglicher Monitor taucht da
natürlich nicht auf.

Vielleicht übersetzt Du Deinen Monitor selbst und bekommst auch hier
ein Map-File - dann kannst Du beide 'übereinanderlegen'.

Gruß,

Jens

(Ich habe meine M16C-Erfahrungen mal einfach auf den MSP430 übertragen,
weiss aber nicht, ob es dort diesen 'Monitor', der die Verbindung zum
Debugger aufrecht erhält und das Flashen oder zumindest Downloaden der
Anwendung übernimmt, wirklich gibt. Kann also alles Quark sein...)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.