So nachdem ich nun endlich mal einen einstieg in eclipse gefunden habe habe ich natürlich (wie soll es auch anders sein) das erste problem : Ich kann programme erstellen/compilieren. Das flashen funktioniert auch. allerdings muß ich dazu im Debugger Configuration Dialog den "mspgcc debugger" auswählen, und nicht wie im tutorial von liechti den gdbserver. sobald ich den gdb-server anwähle und auf "Debug" klicke fängt der an was zu machen (sehe ich im msp430-gdbproxy den ich per console gestartet habe), bricht dann aber mit der fehlermeldung "/cygdrive/c/Programme/eclipse/C:\workspace\msp_test1/C:\workspace\msp_t est1\msp_test1.elf: No such file or directory." ab. nun weiß ich allerdings nicht wie dieser kuriose pfad zustande kommt (denn ich habe cygwin selbst nicht installiert, das kommt wohl vom mspgcc) wenn ich jedoch den mspgcc debugger verwende kann ich zwar flashen und auch etwas debuggen, aber wenn ich einen breakpoint setze kommt der da nie hin (in einer blinker-endlos-schleife z.b.). auch kann ich die debug session nicht terminieren, der msp-gdb-proxy läuft fröhlich weiter, und eclipse meldet nach ein paar sekunden timeout, den proxy kann ich nur mit ctrl+c beenden, und danach muß ich meinen msp von der spannung trennen und wieder dranmachen damit der gdb-proxy mir kein "device unknown" meldet) was mache ich falsch ?! gibt es da ein paar grundsätzliche dinge die ich übersehen habe ?!
Nun ja, der Debugger is so ne Sache. Der ist nicht wirklich als stabil zu bezeichnen. Bei mir gehn aber sowohl mspgcc-gdb als auch normal gdb-server. Allerdings muss man dort auf der einen Tab noch TCP und Port 3333 bei Localhost einstellen. Im Gegensatz zu der Anleitung geht der Cygwin da nicht. Welche GCC Version hast du? Die aktuelle Windows-Version klappt bei mir mit Debuggen überhaipt nicht, die vom November 2006 sehr gut. Der Debugger hat aber auch ein paar Macken, z.B. eine leere Endlosschleife lässt sich nicht unterbrechen, also in etwa: for (;;); da schmiert der ab. Ebenso bei while(1); und solchen Sachen. Desweiteren kriegt der disassembler es nicht gebacken, stark optimierten Code mit dem Quellcode in Verbindung zu bringen -> timeout. Strom ab und wieder dran, muss ich allerdings selten. Auch der USB Debugger klappt wunderbar, nur der Eclipse-GDB-Frontend schmiert halt immer mal ab. Achja, NICHT den Restart-Knopf drücken....da is wohl nen Bug, das klappt auch nicht Wie der komische Pfad zustande kommt, weiß ich nicht, der Debugger-Assistent sucht doch das Elf-File automatisch.
>Nun ja, der Debugger is so ne Sache. Der ist nicht wirklich als stabil >zu bezeichnen. Bei mir gehn aber sowohl mspgcc-gdb als auch normal >gdb-server. Allerdings muss man dort auf der einen Tab noch TCP und Port >3333 bei Localhost einstellen. dazu kann ich nur sagen : full ack :-(( >Im Gegensatz zu der Anleitung geht der Cygwin da nicht. da sagt mir eclipse schon beim einstellen im dialog "cpu not supported" (kann noch nicht mal auf apply klicken -> nur der gdbserver schluckt das, läuft aber nicht (richtig), mspgcc GDB läuft, aber halt recht instabil) >Welche GCC Version hast du? Die aktuelle Windows-Version klappt bei mir >mit Debuggen überhaipt nicht, die vom November 2006 sehr gut. habe die vom februar 2007. wenn das die aktuellste ist werde ich mal ein "downgrade" versuchen. vielleicht hilfts ja. >Der Debugger hat aber auch ein paar Macken, z.B. eine leere >Endlosschleife lässt sich nicht unterbrechen, also in etwa: for (;;); >da schmiert der ab. Ebenso bei while(1); aber mit einem stückchen code zwischen dem while(1) und dem ; sollte es doch funktionieren oder ? jedenfalls kann ich im laufenden code keine breakpoints setzen (setzen zwar schon, aber er hält nicht an), aber das kann ja vllt mit der "zu neuen" gcc version liegen. >Strom ab und wieder dran, muss ich allerdings selten. habe ich leider mit bestechender regelmäsigkeit. allerdings immer nur dann wenn ich den gdb-proxy zwangsterminieren musste (ctrl+c). nach einem erneuten start des proxies liefert der mir immer "device unknown" habe statt den msp fet usb den parallelport, aber das sollte ja nichts zur sache tun. >Restart-Knopf apropos : gibt es eine möglichkeit den gdb zu re-starten ohne das der jedesmal das dingen neu flasht ?! einfach das erase/load kommando aus dem gdb.ini file rausnehmen, oder hat der gdb da auch was gegen (soweit ich weiß flasht der gdb mit dem load kommando den msp ja neu) ?! dank und gruß rene
noch mal eben eine frage : muß ich bei eclipse das makefile von hand erstellen oder gibt es da ein tool das das für mich übernimmt (immerhin wird ja auch nach include-pfaden gefragt, und das nur für den indexer wäre ja etwas übertrieben oder ?) muß man da noch was spezielles einstellen oder sollte es "so" laufen (wenn es denn ein solches feature gibt) gruß rene
Also. Den GDB-Server-Debugger kannst du eigentlich auch nehmen, bei mir geht der sogar besser als der mspgcc-gdb oder wie der da heißt. Protokoll am betsen mi2 benutzen. Neustart ohne flashen geht entweder, wenn du dir eine Konsole und den Verbose-Mode beim Debugger geben lässt, dann kannst du monitor restart c eingeben und er is wieder am Anfang der Main() oder eben das load rausnehmen, das klappt. beenden des GDB-Servers mach ich einfach, indem ich das DOS-Fenster schließe. Aber wie gesagt, ich hab den als external Tool im Eclipse, da geht das dann per Stopp-Knopf. Mit Managed Make Projekt musst du dich um kein Makefile kümmern, klappt bei mir bestens. Automatic Build noch an, und er macht bei jedem Speichern einen Compilerlauf. Ma paar Bilder im Anhang. Das stellt den gdp-proxy als Tool im Eclipse ein, lässt sich dann direkt aus Eclipse starten und beenden.
Hier nochmal ein PostBuild Komnmando, dass die Größe des belegten Flash und RAM ausrechnet.
jau, erstmal danke schön. werde ich heute abend mal ausprobieren. gruß rene
Hallo Chris, erst nochmal danke für deine Hints. Aber so richtig klappen will das nicht. Wenn ich den gdb-server debugger auswähle komme ich nur über das mi-protokoll einen halben schritt weiter, bei mi2 sagt der mir sofort : error creating session mit dem hinweis das der den mi2-interpreter nicht finden kann. bei mi fängt der an was zu laden, bricht aber nachher (wie im gestrigen posting schon erwähnt mit "target selection failed" ab und liefert mit das fehlerdetail das der ein über cygwin gemapptes file nicht finden kann /cygdrive/c/Programme/eclipse/C:\workspace\msp_test1/C:\workspace\msp_te st1\msp_test1.elf: (wie auch immer dieser filename zustande kommt ...) noch eine kleine frage zum size-tool. ich kann den dialog nicht finden, in dem ich die post-build schritte einstellen kann. läuft das vielleicht nur mit managed code ? habe damit noch nichts gemacht (sollte ich aber wohl besser :-)) gruß rene
@chris erstnocheinmal danke für den hinweis mit dem managed c project. allerdings habe ich da noch das problem das wenn ich dateien in unterverszeichnissen habe das das make sich dann auf die nase legt. muß da noch was spezielles eingestellt werden ?
Hmm...mit Unterverzeichnissen hab ich so jetzt noch nicht ausprobiert, aber kann das bei Gelegenheit ma testen. Also wenn der den Befehlsinterpreter nicht findet, ist an deiner Install was falsch würd ich sagen....bei mir klappt das auf Anhieb. Neuestes Eclipse SDK und CDT haste drauf, ja?
also mit unterverzeichnissen scheint es noch ein problem zu geben. ich kann die einzelnen dateien in den verzeichnissen compilieren, aber gelinkt bekomme ich es nicht. und über ein build all schon gar nicht ... :-( der scheint sich da irgendwie zu verstrubbeln. eclipse und cdt sind neu (gestern erst geladen).
Sooo...hab mal ausprobiert mit den Unterverzeichnissen. War gar nicht ganz einfach. Bei mir klappt das nur mit einem managed-make Projekt (mach ich eh immer) und dem "Internal Builder", zu aktivieren unter Project -> Properties -> C/C++ Build -> Build Settings. Da steht was von experimental, aber damit klappts. Hab über New -> Source-Folder den Ordner erstellt und die Files da reingelegt. Natürlich die '#include angepasst. Dann funktionierts. Bild im Anhang. Ohne den internen Builder erstellt der irgendwie in den Unterverzeichnissen keine Dependency-Files (.d) und kann dann natürlich nix linken. Komisch....
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.