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!
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...)
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.