Forum: Mikrocontroller und Digitale Elektronik debuggen nur in main() möglich bei msp430+gdb+eclipse


von pioupus (Gast)


Lesenswert?

Hallo, ich bin gerade dabei eine toolchain für ein msp430 board 
einzurichten. Das Problem ist der Debugger. Ich kann breakpoints setzen, 
bei denen er auch hält. In gewissem Rahmen kann ich auch singlesteppen. 
Was ich nicht kann ist das anzeigen von Variablen. Es werden die 
Variablen in eclipse angezeigt, aber sobaled ich deren Werte sehen will 
kommt die Fahlermeldung

Target request failed: Cannot access memory at address 0x209a.

Und noch eine merkwürdigkeit: ich kann nur innerhalb der main() Funktion 
debuggen. In anderen kann ich nicht steppen. ich sehe nicht wo das 
Programm gerade ist. Das Programm hält zwar auch an Breakpoints an, aber 
ohne zu zeigen wo es ist.

ich benutze den olimex msp430-jtag-tiny-v2 debugger und dessen 
msp430-gdbproxy

in eclipse benutze ich den Gdbhardware debugging debugger

wenn jemand eine Idee hat, wäre ich sehr Dankbar.

Viele Grüße,

Arne

von NopNop (Gast)


Lesenswert?

Optimierungsgrad?
Debuglevel?
Wie sind die aufgerufenen Funktionen die Du nicht debuvgen kannst 
aufgebaut?
Evtl. Inlinefunktionen?
In was für einem Speicher führst du den Code aus?
Flash?Interner/externer RAM?

von pioupus (Gast)


Lesenswert?

Hi NopNop,

NopNop schrieb:
> Optimierungsgrad?

-O0

> Debuglevel?
Wie stelle ich den ein bzw. finde heraus welcher es ist?

> Wie sind die aufgerufenen Funktionen die Du nicht debuvgen kannst
> aufgebaut?
ich poste morgen mal den Quellcode. ist nicht viel. Nur ein Blnklicht.

> Evtl. Inlinefunktionen?

Könnte sein, dass der Compiler das macht. Glaube ich aber nicht, da im 
Assembler die einzelnen Funktionen zu sehen waren

> In was für einem Speicher führst du den Code aus?
> Flash?Interner/externer RAM?

ist ein msp430f2619 ich vermute mal im internen speicher

Was micht am meisten stört, ist dass ich nicht den Inhalt der Variablen 
sehen kann.

Viele Grüße,

Arne

von pioupus (Gast)


Lesenswert?

NopNop schrieb:
> Optimierungsgrad?
> Debuglevel?
> Wie sind die aufgerufenen Funktionen die Du nicht debuvgen kannst
> aufgebaut?
> Evtl. Inlinefunktionen?

siehe http://pastebin.com/3rP9X4K7 das ist der assembler code, den der 
gcc erzeugt hat. sieht nicht so aus, als ob er es inline macht.


auf http://pastebin.com/nKrfCz3c steht der c code. Dabei ist es nur 
möglich, die main Funktion zu debuggen. Will ich auf die Variable buf 
oder i zugreifen, heißt es

Cannot access memory at address 0x209a



> In was für einem Speicher führst du den Code aus?
> Flash?Interner/externer RAM?

Merkwürdig ist, dass laut assembler der code  bei 0x2100 steht. obwohl 
im Datenblatt nach meinem Verständnis der flash bei 0x8000 anfängt?

Wenn jemand eine Idee hat, ich wäre dankbar für jede Hilfe.

Viele Grüße,

Arne

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.