IAR - Problem beim Beobachten von Strukturen

OP #2244058
Lesenswert?

Moin,

ich bin seit kurzem Besitzer der Ez430 Chronos von TI und will mich
mittels IAR Kickstart in das Beispielprojekt Datenlogger einarbeiten.

Ein wichtiger Teil des Datenloggers ist die Struktur "sDatalog" wo die
Messdaten incl. des Datums in sDatalog.buffer[] hineingeschrieben
werden:

struct datalog
{
  // Flags
  datalog_flags   flags;

  // ... einige "unwichtige" Variablen

  // Datalogger write buffer
  u8 buffer[DATALOG_BUFFER_SIZE];
};

extern struct datalog sDatalog;


Leider wird beim debuggen nicht der tatsächliche Inhalt von
sdatalog.buffer[n] angezeigt, sondern lediglich abwechselnt die Werte 3F
und FF (s. Anhang) und können auch nicht mittels sdatalog.buffer[3] =
0x3A geändert werden. Wenn ich nun die Uhr mit dem beigelieferten
Programm auslese, erscheint aber der richtige Messwert (also nicht 3F
oder FF). Es liegt also nur am Debugger.

Dieses Problem habe ich nur bei den Strukturen und nicht bei einfachen
Variablen wie z.B. "int n".

Kann es sein das ich dieses Problem habe, weil ich die Version Kickstart
nutze (wobei diese eigendlich nur die Codegröße auf 4kB/8kB begrenzt)
oder muss man dem Programm mehr Speicher beim Debuggen zuweisen?

MfG und vielen Dank fürs Durchlesen ;-)

Matthias
Angehängte Dateien:
OP #2245426
Lesenswert?

Moin,

vielen Dank nochmal für die Antworten und sorry für die späte Antwort.

@Rudi Sparfuchs:
Die Bytes scheint der Debugger richtig zu interpretieren, ich habe 
zusätzlich eine Strucktur "myDatalog" angelegt, in der ich die Inhalte 
von myDatalog.Buffer[n] ändern und im Watch Fenster einsehen kann.

@A. K.:
Die Adressen scheinen auch in Ordnung zu sein.

Mir ist nochwas aufgefallen:
1. Wenn ich myDatalog vor sDatalog erstelle, lässt sich der Inhalt von 
myDatalog nicht einsehen, aber der von sDatalog (s. Abbildung) => Es 
müsste eigendlich an dem Speicherblock liegen

2. Die Fehlerhafte Struktur befindet sich in einem Block aus vielen 3F 
FF und jede Datenstruktur die darin abgelegt wurde (wie. z.B. Uhrzeit) 
hat einen anderen Wert als 3F, vlt. ließt der Debugger nicht die Daten 
richtig

3. Im Datenblatt des CC430 (Seite 37) 
[[http://focus.ti.com/lit/ug/slau259b/slau259b.pdf]] steht:

   "On vacant memory space, the value 3FFFh is driven on the data bus."

Was das nun genau bedeutet weis ich noch nicht zu deuten, aber mein 
Debugger zeigt ja auch immer 3F FF an

4. Mein Debugger gibt mir auch immer eine Warnung aus, das vom stack 
'Stack' 80Bytes von 80Bytes belegt sind. Wenn ich den Wert von 80 nun 
auf z.B. 100 vergößere, ändert sich dieser aber nicht, ich bekomme also 
noch die gleiche Warnung mit 80Bytes:

   "Wed Jun 29 15:23:38 2011: The stack 'Stack' is filled to 100% (80 
bytes used out of 80). The warning threshold is set to 90.%"

MfG
Matthias
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren