Forum: Mikrocontroller und Digitale Elektronik debuggerproblem mit eclipse und mspgcc


von crisse23 (Gast)


Lesenswert?

Hallo Comunity,

ich habe gerade mein Programm (mit Eclpise und mspgcc) fertig 
geschrieben und wollte es Zeile für Zeile im Debugger überprüfen. Dabei 
tritt jetzt etwas merkwürdeiges auf:
Es wird in die Debug ansicht gewechselt und der Debugger fängt im main 
Programm, genau da wo er soll.
Jetzt ist mein Ziel die Zeilen schrittweise durchzugehen. Also klicke 
ich auf "Step Into" oder "Step Over" (beides ausprobiert).
Dabei tritt das komisch auf. Jetzt springt er in ein Unterprogramm, 
welches garnicht in main eingebunden ist. Wenn ich jetzt wieder  auf 
"Step into" klicke, springt er wieder in main zurück. Also immer 
zwischen den beiden hin und her und arbeitet nie die Zeile ab.

Kann mir einer von euch sagen, woran das liegt? Habe ich etwas falsch 
eingestellt( Es ist mein erstes Project mit eclipse und mspgcc)?

Danke schonmal für eure Hilfe

Gruß

chrisse

von crisse23 (Gast)


Lesenswert?

Weiß keiner von euch woran das liegt??

Ich habe schon superviel ausprobiert.

von Zef (Gast)


Lesenswert?

Sourcen konsistent mit dem Binary?

Interrupts?

von Walter (Gast)


Lesenswert?

Pass auf das der Hund dich nicht beißt ;-).

von crisse23 (Gast)


Lesenswert?

also ich hab gerade gesehen folgende Meldung erhalten.

"No source available for "_reset_vector_()"

Was meint er damit??

@zef: glaube schon, dass die Binary stimmt, aber es ist mein erstes 
Projekt, würde also meine hand darauf verwetten ;-)

danke schon mal für eure hilfe

von Christian R. (supachris)


Lesenswert?

Du hast ganz offenbar den Watchdog nicht deaktiviert und der löst jetzt 
immer einen Reset aus...

von crisse23 (Gast)


Lesenswert?

das mit watchdog war auch mein erster gedanke. Allerdings habe ich in 
der ersten zeile im main programm:

WDTCTL = WDTPW + WDTHOLD;

das schaltet doch Watchdog aus oder?

von crisse23 (Gast)


Lesenswert?

ok hab das problem gelöst. aber danke für die hilfe.

gruß

von A. N. (bastelmaniac)


Lesenswert?

Darf ich fragen, wie du es gelöst hast? Danke.

von crisse23 (Gast)


Lesenswert?

Ach mist, ich muss euch doch nochmal nerven.

Der Debugger geht das Programm immer noch nciht richtig durch. Er 
springt zwar jetzt nicht mehr in das dumme Unterprogramm.
Leider geht er nach einigen zeile wieder zurück an den Programmanfang. 
Der Reset_Vector Fehler ist immer noch da. Also ich glaube es liegt 
daran.
Ist meine watchdog anweisung richtig?
Habt ihr sonst noch eine Idee woran es liegen könnte?

Danke schonmal für eure Hilfe

von Christian R. (supachris)


Lesenswert?

Den Watchdog hast du korrekt deaktiviert. Wird denn alles richtig ins 
Flash geschrieben? Kommen die write Meldungen im gdbproxy? vielleicht 
stimmt die gdb-target.ini nicht? poste die mal hier samt deiner mspgcc 
version.

von crisse23 (Gast)


Lesenswert?

hi,

also ich bin mir nicht sicher ob er alles richtig ins Flash schreibt. 
Wie kontrolliert man das?
Leider bin ich mir auch nicht sicher, was mit written gdbproxy gemeint 
ist. Also wenn ich debugge kommt immer in der Console :
Debug: MSP430_Configure()
debug: MSP430_VCC(3000)
debug: MSP_Identigy()
info: msp430: Target device is a 'MSP430F169' (type 40)
debug: MSP430_Configure()
notice: msp430-gdbproxy.exe:waiting on TCP port 3333

Meine gdb.ini sieht so aus:

set remoteaddresssize 64
set remotetimeout 999999
target remote localhost:3333
set download-write-size 512
set remote memory-write packet size 2000
set remote memory-write packet size fixed
set remote memory-read-packet-size 2000
set remote memory-read-packet-size fixed
monit erase all
load Debug\Verstärker.elf

meine mspgcc version ist: 20081230

gruß und dank chrisse

von g. b. (gunb)


Lesenswert?

Meine gdbtarget.ini sieht inzwischen nur noch so aus:

target remote localhost:3333
monitor erase all
load debug/TIM_A_MD_CONT.elf

Nutze den TI MSP-FET430UIF am USB als auch den alten 
Parallelport-Programmer von Olimex.

Installation nach funpic mit Zylin-Plugin.

Vielleicht hilft's dir. Probieren kann nicht schaden.

von crisse23 (Gast)


Lesenswert?

hab die gdb mal angepasst, allerdings meldet er jetzt den Fehler:
warning: Remote failure reply: E00

und

No source avaible for "InterruptVectors"

Achso ich benutzte von Olimex den jtag tiny.

werde mir nochmal die Anleitung angucken und mein system danach 
anpassen.

von g. b. (gunb)


Lesenswert?

crisse23 schrieb:
> hab die gdb mal angepasst, allerdings meldet er jetzt den Fehler:
> warning: Remote failure reply: E00
>
> und
>
> No source avaible for "InterruptVectors"
>
> Achso ich benutzte von Olimex den jtag tiny.
>
> werde mir nochmal die Anleitung angucken und mein system danach
> anpassen.

Mal in Eclipse die Settings kontrolliert?

Bei mir steht unter GCC C Compiler die Optimierung auf "None (-O0)" und 
unter Debugging der Debug Level auf "Maximum (-g3)".

Der Prozessortyp in den Settings richtig? (-mmcu=msp430x169)

von g. b. (gunb)


Lesenswert?

crisse23 schrieb:
> also ich bin mir nicht sicher ob er alles richtig ins Flash schreibt.
> Wie kontrolliert man das?
> Leider bin ich mir auch nicht sicher, was mit written gdbproxy gemeint
> ist. Also wenn ich debugge kommt immer in der Console :
> Debug: MSP430_Configure()
> debug: MSP430_VCC(3000)
> debug: MSP_Identigy()
> info: msp430: Target device is a 'MSP430F169' (type 40)
> debug: MSP430_Configure()
> notice: msp430-gdbproxy.exe:waiting on TCP port 3333

Kommt hier eigentlich bei dir noch mehr? Da müsste vor dem Starten des 
Debuggers eine Folge von "write"-Anweisungen auf der Konsole erscheinen, 
wo das elf-File in den Controller geflasht wird.

Oder springt Eclipse bei dir direkt in die Debug-Perspektive?

WIE löst du das Debuggen aus? Klickst du einfach auf das Debug-Icon? Was 
passiert dann?

von Christian R. (supachris)


Lesenswert?

Das ganze Zeug aus der ini muss raus. Außerdem muss / für den Pfad da 
rein. Und mach mal keine Umlaute in den Projektnamen. Beim Start des 
Debuggings muss doch noch mehr in der Konsole stehen....

von crisse23 (Gast)


Lesenswert?

Super!

Es scheint jetzt zu funktionieren.
Es lag wohl daran, dass meine gdb zu "voll" war und das ich ein "\" 
statt "/" benutzt habe.
Also nochmal danke für eure Hilfe, alleine hätte ich das wohl nie 
rausgefunden.

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.