mikrocontroller.net

Forum: Compiler & IDEs msp430 GNU Debugging Tools


Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe ein Problem mit den GNU-Tools zum debuggen des msp430. Konkret:
Ich habe Eclipse wie in der Anleitung auf dieser Seite eingerichtet. Das 
Kompilieren funktioniert problemlos, nur das debuggen funktioniert 
nicht.

Dabei startet der msp430-gdbproxy (unter Windows) problemlos und erkennt 
das Ziel (msp430f1611). Beim initieren der Debug-Sitzung zeigt das 
gdbproxy-Fenster auch "connected" o.ä. an. Auf jeden Fall bleibt eclipse 
dann hängen und gibt nach einiger Zeit eine Fehlermeldung aus...
Unter Linux habe ich exakt das gleiche Fehlerverhalten.

Dabei funktioniert das herunterladen des Programms mit dem 
"msp430-downloader.exe" unter Windows einwandfrei. Unter Linux habe ich 
Versuche mit "ddd" angestellt, hier klappt das herunterladen mittels des 
entsprechenden gdb-Befehls (wenn auch langsam), nur beim eingeben von 
"continue" tut sich nichts mehr.

Dachte zuerst an ein Problem mit dem Parallel-Port (fest im Laptop 
installiert), aber sowohl mit dem IAR-Compiler als auch mit dem "TI 
CodeComposerEssentials" funktioniert das Debuggen absolut problemlos, 
leider ist mein Programm größer als die freien Versionen dieser 
Programme es zulassen.

Der JTAG-Adapter ist übrigens dieses Standard-FET für den Parallel-Port.

Falls jemand eine Idee hat, woran das liegen könnte, wäre ich sehr 
dankbar... Ist etwas nervig, über 3 LEDs zu debuggen. Mittels Forensuche 
und Google konnte ich leider keine Lösung finden.


Danke & Gruß,
Christian

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...und gleich noch eine kleine Frage hinterher:
Wo kann man denn das Programm "msp430-jtag" für linux finden? Bei meiner 
mspgcc-distribution war es nicht dabei, und bei einer gerade 
stattgefundenen google-suche konnte ich es nicht finden.

Ich hoffe, ich gehe richtig in der Annahme, daß dies das Programm ist um 
unter Linux .elf-Dateien in den msp herunterzuladen?

Danke,
Christian

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

so ein Zufall, hatte erst gestern das gleiche Problem. Bei mir schien's 
dran gelegen zu haben, dass ich zu lange Dateipfade, bzw. solche mit 
Leerzeichen hatte. Als ich dann mal kurz 'ne zweite HD eingebaut hatte 
(Wollte an der anderen nix rumpartitionieren) und diese als 
Developing-Laufwerk eingerichtet hatte, ging's plötzlich. Versuch' mal 
sowas, vlt. liegt's bei dir ebenfalls daran...
Zur anderen Frage weiss ich leider nix.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kommt bei mir auch mal öfters vor. Schalte zuerst mal die 
Optimierung ab, also auf -o0, dann Debug auf maximum, und dann gehts 
eventuell. Wenn man große Datenfelder über den Debugger holen will, oder 
zuviel optimiert wurde, bleibt er hängen. Es kann aber auch sein, dass 
du ein großes Array definiert hast, und den WDT nicht VORHER 
ausschaltest? Das geht mit low_level_init, schau mal in die Appnotes von 
TI, das ist da beschrieben. Wird das Feld initialisiert und ist größer 
als 2k, dann schmiert die Kiste ab, weil der WDT dazwischen einen Reset 
macht.

Autor: C++'lerin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wo kann man denn das Programm "msp430-jtag" für Linux finden? Bei meiner
> mspgcc-Distribution war es nicht dabei, und bei einer gerade
> stattgefundenen Google-suche konnte ich es nicht finden.

Das kannst du über CVS bekommen:

$ cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc 
login
$ cvs -z3 
-d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co jtag
$ cd jtag
$ make
$ sudo make install
$ cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc 
login
$ cvs -z3 
-d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co 
pyjtag
$ cd pyjtag
$ make
$ sudo make install

... oder so ähnlich ...

> Ich hoffe, ich gehe richtig in der Annahme, dass dies das Programm ist um
> unter Linux .elf-Dateien in den msp herunterzuladen?

Ja. Es geht zwar auch über gdb/gdbproxy - das ist aber seehr langsam.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Ich hoffe, ich gehe richtig in der Annahme, dass dies das Programm ist um
>> unter Linux .elf-Dateien in den msp herunterzuladen?
>
> Ja. Es geht zwar auch über gdb/gdbproxy - das ist aber seehr langsam.

Kommt drauf an. Mit dem TI-USB-FET gehts sauschnell. Mit dem 
Parallelport-Frickel-Adapter ziemlich lahm...

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
vielen Dank für die Hinweise.

Am Dateipfad kann es eigentlich nicht liegen, der ist nicht so 
wahnsinning lang und Leerzeichen hat er auch keine... Aber ich es werde 
es mal versuchen.
Jedoch verstehe ich nicht, was die Partition mit dem Dateipfad zu tun 
hat??

Die Optimierung hab ich aus, an dem Rest werd ich mal ein wenig 
rumspielen. Das mit der Größe der Variablen ist ein interessanter 
Aspekt, ich hab eine Menge globales Zeug. Die Appnote werde ich mal 
angucken, daß es ein Watchdog-Timer-Problem sein könnte, hätte ich nicht 
gedacht.

Das msp430-jtag werde ich mir wohl runterladen, und über kurz oder lang 
den USB-JTAG von TI besorgen. Kostet ja nicht die Welt...

Ich kann das ganze jetzt leider nicht direkt versuchen, da ich das Zeug 
nicht hier habe. Werde am Donnerstag mal Bescheid geben, ob es geklappt 
hat.


Nochmals Danke & viele Grüße,

Christian

Autor: C++'lerin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das msp430-jtag werde ich mir wohl runterladen, und über kurz oder lang
> den USB-JTAG von TI besorgen. Kostet ja nicht die Welt...

Lohnt sich IMHO nicht. Wenn man msp430-jtag statt 
msp430-gdb/msp430-gdbproxy benutzt, geht das flashen über den 
Parallelport-Adapter auch innerhalb weniger Sekunden satt 20-30 min.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Lohnt sich IMHO nicht. Wenn man msp430-jtag statt
> msp430-gdb/msp430-gdbproxy benutzt, geht das flashen über den
> Parallelport-Adapter auch innerhalb weniger Sekunden satt 20-30 min.

Also, 20-30mins hat es bei meinen ddd-Versuchen auch net gedauert ;-) 
Vielleicht so 2. Auf jeden Fall so lange, daß man denkt, es ginge gar 
nichts mehr...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hä? Meinen MSP430F1611 flasht der gdb-proxy in ca 10...15 Sekunden über 
den Paralleport-Adapter. Irgendwas macht ihr falsch. Der msp430-jtag 
braucht ca 10 sekunden. Programmgröße war ca 25kByte. Über den TI-USB 
dauerts ca 3...4 Sekunden.

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch wenn der Thread ein bissl älter ist:

Ich hab dasselbe Problem. Hab bis jetzt den Code Composer verwendet und 
bin nun an das Code Size Limit gekommen. Hab dann gestern versucht den 
GCC mit Eclipse zu installieren.

Hat auch wunderbar geklappt. Der gdbproxy findet mein Device und 
Eclipse/GCC übersetzt mein Programm perfekt. Wenn ich dann Debuggen 
will, kommt nach kurzer Zeit eine Fehlermeldung "Target not responding: 
Timeout" oder so ähnlich.

Hab dann über die Konsole versucht eine fertige kompilierte Datei 
hochzuladen. Selbe Problem. Immer Timeout. In meinem Testprogramm hab 
ich nur eine Headerdatei drin + Wachhund ausschalten + main mit while.

Habt ihr ne Lösung zu dem Problem gefunden?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Version (Datum) der GCC Toolchain hast du? Ich hab mit der vom 
November 2006 und Februar 2007 arge Probleme. Der USB Debugger schmiert 
dauernd ab, das Programm läuft entweder gar nicht los, und/oder lässt 
sich dann nicht unterbrechen. Arbeite mit der Version vom 2.5.2006, da 
klappt alles.

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habs im Moment grad auch herausgefunden. Aber trotzdem danke. Gut zu 
wissen, dass die neueren Versionen nicht funktionieren. Hab die Version 
vom 2.5.2006 installiert und plötzlich ging alles. Ein Traum...hab mich 
jetzt 2 Tage damit rumgeärgert den GCC zu installieren.

Wie kann ich denn Breakpoints setzen? Ich seh zwar rechts oben das 
Fenster "Breakpoints", aber da kann ich nix setzen und mit rechtsklick 
auf die Code-stelle finde ich auch keinen Eintrag.

Gibt eigentlich eine Möglichkeit zu sehen, wieviel Speicher aufn µC 
verwendet wird?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arbeitest du mit Eclipse? Dann kannst du BP setzen, indem du auf diese 
Leiste links neben den Code-Zeilen doppelkickst.

Speicher anzeigen geht mit: msp430-size --target=elf32-msp430 
filename.elf

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay klappt perfekt. Hab nur noch ein Problem:

Wenn ich debuggen möchte und in eine Funktion reinsteppe, dann kommt 
Fehlermeldung. Die Funktionen sind in einer zweiten c-Datei deklariert 
und über einen Header in Main eingebunden.
while(1)
{
     XAxis = SCA3000E05_AXIS_READ(0x05);            //Hier kein Step in die Funktion rein
     fXAxis = SCA3000E05_CONVERT2FLOAT(XAxis);      //Ebenso

     for (i = 0x2FFF; i > 0; i--);
}

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für eine Fehlermeldung denn? Bei sehr komplexen Funktionen in 
Unterprogrammen ist der Debugger manchmal überfordert. Ebenso bei 
eingeschalteter Optimierung....

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.