Forum: Mikrocontroller und Digitale Elektronik Variablen nicht veränderbar / TMS320F2812


von Sam (Gast)


Lesenswert?

Hallo,
ich hab hier folgenden Seltsamen Vorfall mit dem TMSF2812 von TI. . Nun
werden während des Ablaufs des Programms einige Variablen überhaupt
nicht richtig zugewiesen, so als ob die Variablen nicht veränderbar
seien (wurden natürlich nicht als const deklariert). Die Variablen
liegen um die Speicheradresse 0x000094C2, das ist laut memory map ein
RAM Bereich.
Hm..was könnte jetzt der Fehler sein?
Danke
gruss
Samuel

von tobias (Gast)


Lesenswert?

moin,

ein bisschen code wäre nicht schlecht.
nutzt du den ti debugger?

tobias

von Sam (Gast)


Lesenswert?

ja ich nutze den ti debugger (code compser studio)...

z.B. mach ich:

long l;
long value23;

value23 = l; //wenn l z.B. den Wert 64928 hat, hat nach dieser
Zuweisung //value23 den Wert -608

was könnte das sein?

von tobias (Gast)


Lesenswert?

schaust du dir das im map viewer an in dem du die hexadresse angibst,
oder untem im local viewer?
die ansicht im local viewer von variablen funktioniert nicht.
mach sie mal static in funktionen und schau sie dann im globel viewer
daneben an.

von Sam (Gast)


Lesenswert?

ich schau sie unten im watch window, watch1  an (also nicht im
local).....meinst du das?

von tobias (Gast)


Lesenswert?

ja das meinte ich.
sind sie in der main deklariert, also global, oder in einer
Funktion,also lokal?

von Sam (Gast)


Lesenswert?

sie sind ausserhalb vom main global deklariert

von tobias (Gast)


Lesenswert?

was sagt denn der memory viewer dazu, wenn du den code durchstepst?

von Sam (Gast)


Lesenswert?

dhm...den hab ich noch nie benutzt...wie geht das?

von tobias (Gast)


Lesenswert?

such im mapfile die hexadresse der variablen.
das mapfile kannst du dir durch compilereinstellungen generieren
lassen.
am linken bildschirmrand oder oben in einer menuleiste gibt es den
mapviewer. er kann auch etwas anders heißen.
dort gibst du die hexadresse an (z.b. 0x000094C2) und siehst den
speicherinhalt.

mit der rechten maustaste auf den code gehen und mixed source
anklicken.
dann kannst du dir auch den assembler anschauen und einzeln
durchsteppen.
wenn du dir die register und pc in den unteren fenstern anzeigen lässt,
sollte man sehen wo der wert herkommt.

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.