Hi Ich möchte den MSPGCC mit dem DEV-C++ verknüpfen, nun bin ich leider bei den Compilereinstellungen etwas hängen geblieben. Habe folgendes eingeben... --> Compileroptionen Folgender Befehl bei Compiler-Aufruf hinzufügen -mmcu=msp430x149 stimmt das???????? Ausserdem bin ich bei dem Punkt Programme nicht sicher... gcc: msp430-gcc.exe g++: ??????????? make: make.exe gdb: msp430-gdb.exe windres: ?????? dllwrap: ?????? gprof: ????? Der Rest dürfte stimmen --> Verzeichnisse... So, nun noch zu meiner letzten Frage... Nach dem compilieren entsteht vermutlich ein .o-File, aber ich brauche ja ein .elf-File. Sehe ich das falsch???? Wer kann mir weiterhelfen, oder wo finde ich Informationen???? Gruss Buri
Dieser Fragestellung schließe ich mich gerne an. Allerdings habe ich das hier auch schon mal gepostet. ;) Gruß Oliver
Ich würd mich ja damit beschäftigen, aber ich kenne diese IDE überhaupt nicht... vielleicht mal Downloaden...
Hallo, hier ist der link zum download: http://www.bloodshed.net/dev/devcpp.html Mittlerweile ist das Update auf 4.9.8.10 draussen, welches man auf der gleichen Seite findet und einfach nach dem Vollpaket installiert. Gruß Oliver
Hi Oliver Ich habe mal folgendes hinzugefügt: gcc: msp430-gcc.exe g++: msp430-gcc.exe make: make.exe gdb: msp430-gdb.exe windres: windres.exe dllwrap: dllwrap.exe gprof: gprof.exe dann hat's bei mir funktioniert und ich habe das .o-File erhalten, allerdings weiss ich nicht ob das wirklich so stimmt. Die Verzeichnisse musst du natürlich auch anpassen! Gruss Buri
Hallo Buri, hast du die Verzeichnisse ersetzt, oder hinzugefügt. Bei mir siehsts derzeit so aus: Programmdateien ->hab ich unverändert gelassen (iss wahrscheinlich falsch) Bibliotheken ->MSPGCC430\mspgcc\lib hinzugefügt C-Includes ->MSPGCC430\mspgcc\msp430\include\msp430 und MSPGCC430\mspgcc\msp430\include\sys hinzugefügt C++-Includes ->unverändert Falls ich da noch was ändern sollte, wäre nett wenn du Bescheid sagst ;). gruß Oliver
Ich blick das nicht... Hab zwar fälschlicherweise diese 5er Beta runtergeladen, aber das sollte erst mal nicht stören. Erzeugt das Teil ein Makefile und ruft dann make auf, oder wie soll das laufen?
Hallo OldBug, das kommt ganz darauf an, was du einstellst. Wenn du das programm so nutzt wie es voreingestellt ist, dann schreibst du ganz normale c-Programme, für die er ein Makefile erzeugt. Wenn du die IDE für mspgcc umkonfigurierst, dann nicht, habe jedenfalls keins gefunden. Die Relevanten Einstellungen machst du unter Werkzeuge -> Compileroptionen Dort habe ich einfach ein zweites Copilerset definiert, damit ich zwischen mspgcc und normaler Programmierung umschalten kann. Ich hab mal meine aktuellen Konfigurationen angehängt. Wenn ich jetzt kompiliere bekomme ich genau das gleiche .elf-file wie mit dem Kommandozeilenaufruf msp430-gcc -Os -mmcu=msp430x1121 -o test1.elf test1.c (ok, ich habe das .elf-file temp.elf genannt). Da ist mir doch gerade aufgefallen, dass der Aufruf: msp430-objcopy -Os ihex temp.elf test1.hex bei mir einen Fehler produziert. Hm. Muss ich mal kontrollieren. Wäre natürlich schön wenn man das gleich auch noch mit abwickeln könnte, mal schaun was sich da anbietet. Gruß Oliver
Hi Oliver Ich habs mit folgender Einstellung geschaft: --> Compileroptionen Folgender Befehl bei Compiler-Aufruf hinzufügen -mmcu=msp430x149 -g Diese Befehle zur Linker-Kommandozeile hinzufügen -mmcu=msp430x149 -g --> Einstellung Nichts verändert -->Programmdateien \mspgcc\bin \mspgcc\lib\gcc-lib\msp430\3.2.3 (kann vielleicht bei dir anders aussehen???) \mspgcc\msp430\bin -->Bibliotheken \mspgcc\lib \mspgcc\msp430\lib \IAR Systems\ew23\430\lib (Ist die Biblio von dem IAR) -->C-Includes \mspgcc\msp430\include \IAR Systems\ew23\430\inc (Wieder vom IAR) -->C++-Includes Nichts verändert -->Programme gcc: msp430-gcc.exe g++: msp430-gcc.exe make: make.exe gdb: msp430-gdb.exe windres: windres.exe dllwrap: dllwrap.exe gprof: gprof.exe So hat's bei mir funktioniert... @OldBug So wie ich das gesehen habe wird ein makefile im Verzeichnis erstellt und dieses dann ausgeführt...mehr kann ich leider auch noch nicht dazu sagen... Gruss Buri
Hallo, so sieht die Fehlermeldung aus, die ich beim erzeugen des Hex-Files bekomme. Ich habe das auch schon mit dem Beispiel probiert. Ich sehe da keinen Fehler, es sei denn es ist einer auf der Webseite. C:\Dokumente und Einstellungen\OR\Desktop\Temp>msp430-objcopy -Os ihex temp.elf test1.hex Usage: msp430-objcopy [option(s)] in-file [out-file] Copies a binary file, possibly transforming it in the process The options are: -I --input-target <bfdname> Assume input file is in format <bfdname> -O --output-target <bfdname> Create an output file in format <bfdname> -B --binary-architecture <arch> Set arch of output file, when input is binary -F --target <bfdname> Set both input and output format to <bfdname> --debugging Convert debugging information, if possible -p --preserve-dates Copy modified/access timestamps to the output -j --only-section <name> Only copy section <name> into the output -R --remove-section <name> Remove section <name> from the output -S --strip-all Remove all symbol and relocation information -g --strip-debug Remove all debugging symbols --strip-unneeded Remove all symbols not needed by relocations -N --strip-symbol <name> Do not copy symbol <name> -K --keep-symbol <name> Only copy symbol <name> -L --localize-symbol <name> Force symbol <name> to be marked as a local -G --keep-global-symbol <name> Localize all symbols except <name> -W --weaken-symbol <name> Force symbol <name> to be marked as a weak --weaken Force all global symbols to be marked as weak -x --discard-all Remove all non-global symbols -X --discard-locals Remove any compiler-generated symbols -i --interleave <number> Only copy one out of every <number> bytes -b --byte <num> Select byte <num> in every interleaved block --gap-fill <val> Fill gaps between sections with <val> --pad-to <addr> Pad the last section up to address <addr> --set-start <addr> Set the start address to <addr> {--change-start|--adjust-start} <incr> Add <incr> to the start address {--change-addresses|--adjust-vma} <incr> Add <incr> to LMA, VMA and start addresses {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val> Change LMA and VMA of section <name> by <val> --change-section-lma <name>{=|+|-}<val> Change the LMA of section <name> by <val> --change-section-vma <name>{=|+|-}<val> Change the VMA of section <name> by <val> {--[no-]change-warnings|--[no-]adjust-warnings} Warn if a named section does not exist --set-section-flags <name>=<flags> Set section <name>'s properties to <flags> --add-section <name>=<file> Add section <name> found in <file> to output --rename-section <old>=<new>[,<flags>] Rename section <old> to <new> --change-leading-char Force output format's leading character style --remove-leading-char Remove leading character from global symbols --redefine-sym <old>=<new> Redefine symbol name <old> to <new> --srec-len <number> Restrict the length of generated Srecords --srec-forceS3 Restrict the type of generated Srecords to S3 --strip-symbols <file> -N for all symbols listed in <file> --keep-symbols <file> -K for all symbols listed in <file> --localize-symbols <file> -L for all symbols listed in <file> --keep-global-symbols <file> -G for all symbols listed in <file> --weaken-symbols <file> -W for all symbols listed in <file> --alt-machine-code <index> Use alternate machine code for output --prefix-symbols <prefix> Add <prefix> to start of every symbol name --prefix-sections <prefix> Add <prefix> to start of every section name --prefix-alloc-sections <prefix> Add <prefix> to start of every allocatable section name -v --verbose List all object files modified -V --version Display this program's version number -h --help Display this output msp430-objcopy: supported targets: elf32-msp430 elf32-little elf32-big srec symbolsrec tekhex binary ihex Gruß Oliver
Hallo, ich bins mal wieder. @OldBug >Erzeugt das Teil ein Makefile und ruft dann make auf, oder wie soll >das laufen? Kommt drauf an: 1. Mgl: Du öffnest einfach nur dein c-file und machst die oben aufgeführten Compilereinstellungen. Diese gelten dann global(Tip: neuen Compilerset anlegen, damit man mit dem Original-Set "normale" PC-Anwendungen schreiben kann). Das Programm spuckt dir dann deine elf Datei aus.(bei Compiler-Optionen steht bei mir: -mmcu=msp430x149 -g -o test1.elf). 2.Mgl: Du legst ein Projekt an Datei->Neu->Projekt. Dann Projekt->Zum Projekt hinzufügen->Deine Datei(en). Jetzt erzeugt dir DevCpp immer wieder neu ein Makefile, je nachdem welche Einstellungen du in Werkzwuge->Compiler Optionen, bzw. Projekt->Projekt Optionen gemacht hast. Du kannst unter Projekt-> Projekt Optionen->Make oben links das Kästchen aktivieren und in der Zeile darunter ein Makefile auswählen, das benutzt werden soll. (Achtung Bug: in dem Fenster sind die Labels nur als <ERRxxx> zu sehen, zumindest bei mir) Wenn mir da jetzt aber einer erklären könnte, wie man ein Makefile selber schreibt, insbesondere, wie ich da jetzt mein .elf-file rausbekomme, wäre ich sehr froh. Bisher habe ich immer das automatisch generierte Makefile zum Programmieren benutzt. Gruß Oliver
Hier ist mein konfiguriertes Makefile. Gruß Oliver
Hi Bei einem Projekt mit mehreren Dateien habe ich folgende Fehlermeldung erhalten. --> Kompiliert mit MSPGCC Wer weiss was das bedeutet??? make: *** No rule to make target `to', needed by `main.o'. Stop. Gruss Buri
Daß da im Makefile sowas wie: main.o: to steht und er nun nicht weiß, wie er die Datei `to' anlegen soll...
Hi Leute, ich beschäftige mich auch grad mit dem Thema. Habs schon so weit geschaft, dass ich mit Dos-Fenster Debuggen kann (Breakpointssetzen usw.). Kompilieren und HEX-fileerzeugung mache ich aber noch mit selbsdefinierten Werkzeugen. Nur das Kompilieren direkt in Dev-C++ klappt noch nicht so richtig. Mein Problem: Wie schalte ich die automatische Makefile-Erzeugung ab ??? Bitte helft mir ! Gruß - Sebastian.
Hallo Sebastian, öffne ->Project -> Project Options -> Makefile aktiviere "use custon makefile" such dein eigenes Makefile fertig Gruß Oliver
Hi Oliver, danke für den Hinweis, bloß dass ich so eine Option nicht auswählen kann (siehe Anhang). Wie gesagt ich benutze Version 4.9.8.0 . Welche Version benutzt denn du ? Es gibt ja auch schon die 4.9.8.10ner Version, wie ich gerade hier im Forum gelesen habe. Funktioniert es bei dieser Version etwa?
Hi Oliver, danke für den Hinweis, bloß dass ich so eine Option nicht auswählen kann (siehe Anhang). Wie gesagt ich benutze Version 4.9.8.0 . Welche Version benutzt denn du ? Es gibt ja auch schon die 4.9.8.10ner Version, wie ich gerade hier im Forum gelesen habe. Funktioniert es bei dieser Version etwa? Gruß - Sebastian
Oh, ja, sorry, ich hab natürlich die 10er Version. Die Spracheinstellungen solltest du aber auf englisch lassen, da in der deutschen Übersetzung ein paar Sachen fehlen, bzw falsch sind. Du kannst dir aber auch ein korrigiertes deutsches File runterladen. Dass ist (wenn ich mich recht entsinne) irgendwo auf auf der dev-cpp seite auf sourceforge. Musst da mal die Foren durchsuchen. Gruß Oliver
Hallo Oliver, ich hab inzwischen schon auf die 10ner Version upgedatet und alle Einstellungen getroffen (wobei mir die Fehler der deutschen Sprachversion auch aufgefallen sind). Mit Hilfe deines Makefiles, das du oben in einem Post mitangehängt hast; ist dann auch die *.elf Datei erstellt worden (auch keine Fehlermeldung beim compilieren). Aber sobald ich auf Fehlersuche (Debug) klicke kommt eine Meldung: "Datei nicht kompiliert". Braucht das Programm hier unbedingt die *.exe Datei oder wie? Kannst du denn schon die Breakpoints mit DevC++ in der *.c Datei setzen oder debuggst du über Kommandos ? Gruß Sebastian. PS.: Wenn du mir deine Emailaddresse schickst und evtl. gewillt bist mir schnell auf die Sprünge zu helfen wär ich dir sehr dankbar ..
Hallo Sebastian, meine Emailadresse steht oben in der Kopfzeile ;-).Das Problem liegt darin, dass du eine elf-Datei erzeugt hast. Diese musst du vor dem Debuggen aber erst mal auf den Controller übertragen. Das habe ich bisher immer über die Konsole gemacht. Dev-cpp habe ich nur zum Programmieren und kompilieren benutzt. Alles andere hab ich über die Konsole versucht, obwohl ich da ein paar derbe Fehlermeldungen bekommen habe, die ich bis heute noch nicht beseitigen konnte. Ich habe mich derweil erstmal mit der HW beschäftigt. Kannst auch mal hier nachschauen: http://www.mikrocontroller.net/forum/read-2-81737.html die Fehlermeldungen sind immer noch die gleichen. :(( Gruß Oliver
Hi Oliver, den Fehler: "Remote failure reply: E00" hatte ich auch schon. Vermutlich liegt es daran wenn man beim debuggen mit den "n" (next) oder "ni" Befehlen arbeitet. Dabei kommt man an ein Schleifenende und das ganze hängt sich auf. Setze einfach eine Breakpoint ("break 'zeile'") auf einen beliebigen Befehl in deinem Programm und debugge mit dem "c" (continue) Befehl, dann funktionierts. (zumindest bei mir; achja ich hab auch ohne Funktionsprototyp gearbeitet also die ganze Fkt. vor main definiert) Die Hex Datei war auf dem uC und Die Meldung "Datei nicht kompiliert" kommt trotzdem. Noch ein Tipp von mir: Mit dem Parameter: "-x c:\Mspgcc\bin\gdb.ini" beim Aufruf der msp430-gdb.exe Datei werden die Befehle in der gdb.ini ausgeführt. Datei einfach selber anlegen und "setremoteaddresssize = 64"ect. da rein schreiben. ciao - Sebastian.
Ich bins nochmal, die Meldung "Datei nicht kompiliert kommt daher, dass du ja kein .exe-file erzeugst. Dev-cpp such nämlich nach diesem und bricht den Ausführvorgang ab wenn er das nicht findet. Ich habe noch nicht rausgefunden, wie man der IDE mitteilt, dass er das .elf auf dem Remote-µC ausführen soll. Deshalb bleib zum Rüberschieben und Debuggen lieber erstmal bei der Konsolenvariante. Mit Breakpoint und continue hab ich genau die gleichen Fehler und das Inifile hab ich auch eingebunden, heißt bloss anders. Naja, werde das alles jedenfalls zum x-ten Mal durchchecken, wenn ich meine HW fertig habe. Gruß Oliver
Hi Oliver, wie groß ist bei dir der Größenunterschied zwischen IAR-Hexfile und MSPGCC-Hexfile? Bei IAR sieht mans in dem Meldefenster von C-SPY wieviel er hochgeladen hat. Ich hab nämlich das Problem, dass ich bei IAR an die 4K Grenze gestoßen bin und mit GCC das Hexfile dann 10K hat obwohl ich mit "-O2" optimiere. Kann mir da irgenwer einen Tipp geben? Gruß - Sebastian.
Hallo zusammen, Wie kann man den "wite-formatter" bei gcc auf "small" stellen? Dieser wird bei Funktionen wie printf und sprintf benutzt. Im Manual hab ich nichts gefunden. ciao - Sebastian
Hm, also ich habe hier ein Projekt das für uns entwickelt wurde. Der Entwickler hat mit den Kommandozeilenprogrammen gearbeitet, das klappt bei mir auch. Aber ich würde jetzt gerne auf Dev C++ umstellen.... Compilieren klappt auch, aber irgendwie ruft er den Linker nicht auf. "linker input file unused because linking not done" Und kann mir mal einer sagen was .elf für eine Datei ist ? Früher, als in meiner Jugend, war das mal so, dass mir ein Compiler .obj files erzeugt, welche ich dann zusammen mit den Bibliotheken vom Linker binden lasse. Wie sieht das hier aus ? Greets Karlheinz
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.