-
-
Neuer Benutzer
Öfters hier
AVR Simulator
Hallo zusammen,
ich habe eine Variable deklariert und möchte Ihren Verlauf im Simulator und "watch" anschauen. Unter value steht aber immer nur "lacation not valid". Was mache ich falsch?
Meine Variable habe ich folgendermaßen definiert:
.....
int Input1 , Input2;
....
Hat jemand ne Idee?
-
Erfahrener Benutzer
Fleißiges Mitglied
Moin,
wahrscheinlich hat der Compiler ein Register zum speichern benutzt.
-
Erfahrener Benutzer
Robotik Visionär
Das mit dem rgister sehe ich auch so.
Um die Variable dennoch im Simulator zu verfolgen, kann man für die Simulation den Code ohne Optimierung übersetzten. Wenn das nicht geht (z.B. wegen delay), hilft es oft wenn man die Variablem als Volatile definiert.
-
Neuer Benutzer
Öfters hier
Ich hab zumindest ein ähnliches Problem.
Ich benutze AVR Studio um eine Atmega128 zu programmieren.
Ich hab alle delay sachen rausgeschmissen, habe optimization auf -O0 gestellt (statt -Os zuvor). aber trotzdem macht mein Programm nicht was es machen soll wenn ich "build and run" klicke, steht da zum beispiel x=0x004; wo der gelbe pfeil hinzeigt nimmt x irgendein Wert an und nicht 0x004. Oder ALLE variablen ändern sich zugleich zu irgendeinem x-beliebigen Wert wenn ich mit F10 oder F11 weiterklicke. Oder ein array nimmt für alle felder den selben Wert an wenn da steht arr1[1]=0xFF; steht überall FF. zum verzweifeln.
ich habe in meinem programm variablen auch als uint32_t und uint16_t oder unsigned char definiert, aber das dürfte doch kein problem sein oder? und ein array uint16_t mit 8192 Werte. (ich denke nicht, dass, das problem hierbei liegt, ich wollte nur noch ein paar infos zusätzlich geben)
danke schon mal
-
Erfahrener Benutzer
Robotik Visionär
Ein Array mit 8192 Werte zu je 2 bytes braucht kBytes an Speicher. Das ist schon mehr als der Mega128 hat. Danach muß man sich über fast nichts mehr wundern, außer natürlich ein funktionierende Programm.
Wie der Simulator eine Überlauf beim RAM behandelt weiss ich nicht, aber dier konstanten Werte FF wären eine logische Möglichkeit.
-
Erfahrener Benutzer
Robotik Einstein
Wenn der Monsterarray "global", also ausserhalb einer Funktion deklariert wurde, müsste doch der Compiler das anzeigen, dass mehr als 100% data belegt sind.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen