Tinkee24-7 Geschrieben September 1, 2016 at 12:37 Geschrieben September 1, 2016 at 12:37 Hallo zusammen, ich habe unter Windows 7 eine Build-Umgebung aufgesetzt, um selbst Brick Firmware ändern und kompilieren zu können. Dazu habe ich mich an diese Anleitungen gehalten: http://www.tinkerforge.com/de/doc/Software/FirmwaresAndPlugins_BuildingBrickFirmware.html http://www.tinkerforge.com/de/doc/Software/Firmwares_And_Plugins.html#firmwares-and-plugins-install Ich habe Sourcery CodeBench Lite 2013.11-24, CMake 3.61 und Make 3.8.1 installiert - die Versionsabfragen auf Kommandozeilenebene funktionieren alle (Path-Variable ist entsprechend gesetzt), demnach sollten die Tools alle einsatzbereit sein. Entsprechend der o.a. Anleitung zum Compilieren einer Brick-Firmware starte ich dann das Skript "generate_makefile.bat" - auch das funktioniert noch, der "build" Ordner wird entsprechend angelegt. Mit c:\mulc\tf\master-brick\software\build make starte ich dann den Compilier-Vorgang - das funktioniert auch soweit, bis am Ende dann eine Fehlermeldung kommt, auf die auch bereits in der Tinkerforge-Anleitung verwiesen wird: process_begin: CreateProcess(NULL, S -O binary master-brick.elf master-brick.bin, ...) failed. make (e=2): Das System kann die angegebene Datei nicht finden. Entsprechend den Empfehlungen bzgl. dieser Fehlermeldung führe ich "generate_makefile.bat" nochmals aus und starte danach erneut c:\mulc\tf\master-brick\software\build make Laut Anleitung sollte der Compilier-Vorgang nun durchlaufen und eine .bin-Datei im Ordner "build" erzeugen. Das tut bei mir leider nicht, nach dem erneuten make-Aufruf kommt bei mir die Fehlermeldung: ARM-NO~3.EXE: error: nosys.specs: No such file or directory make[2]: *** [CMakeFiles/master-brick.elf.dir/src/communication.obj] Fehler 1 make[1]: *** [CMakeFiles/master-brick.elf.dir/all] Fehler 2 make: *** [all] Fehler 2 Auffallend ist, dass zuvor nur beim 2. Aufruf von "generate_makefile.bat" eine CMake Warning kommt: Manually specified variables were not used by the project: CMAKE_TOOLCHAIN_FILE Beim 1. Aufruf der Batch-Datei kommt diese Warnung nicht. Letztendlich liegt im "build" Ordner dann nur die compilierte .elf-Datei, die .bin-Datei wird aufgrund des Fehlers nicht erzeugt. Könnt ihr mir bitte einen Tipp geben, wo hier der Haken ist? (Der Quellcode ist übrigens von Stand heute, frisch aus den Git-Repos als zip-Dateien geladen...) Besten Dank vorab und viele Grüße, Tinkee24-7 Zitieren
photron Geschrieben September 1, 2016 at 13:59 Geschrieben September 1, 2016 at 13:59 Ups, die Dokumentation ist veraltet und sollte es eigentlich nicht mehr geben. Da muss ich gleich mal aufräumen. Sorry für die Verwirrung. Der aktuelle offizielle Weg ist der hier: http://www.tinkerforge.com/de/doc/Tutorials/Tutorial_Build_Environment/Tutorial.html Zitieren
Tinkee24-7 Geschrieben September 1, 2016 at 16:18 Autor Geschrieben September 1, 2016 at 16:18 Hallo photron, gar kein Problem... Vielen Dank für den von dir geposteten Link zu der Anleitung. Diese kenne ich auch - bin aber eben eher in Windows zu Hause und wollte es deswegen erst mal auf dem Windows-Weg probieren Nun habe ich mich als völliger Linux-Newbee mal daran gewagt - hab's nun auch zum Laufen bekommen, hatte auch noch etwas Support von einem netten Kollegen! :D Da ich mich einfach noch nicht so richtig in der Linux-Welt auskenne, noch ein paar Fragen mit Blick auf die Anleitung: Beim Setzen des Symlinks perln -s ../../../bricklib/ . kam eine Fehlermeldung: "File exists". Habe dann im "Explorer" gesehen, dass diese Verknüpfung im entsprechenden Pfad nach dem Klonen der Git-Repos schon da war. Im zweiten Anlauf habe ich diese Zeile dann einfach weggelassen - hat am Ende offenbar auch alles funktioniert - oder hat der Befehl sonst noch irgendwelche Konsequenzen (sollte z.B. die Verknüpfung aus dem Git-Repo gelöscht und durch diesen Befehl ein neuer Symlink erzeugt werden)? Ein erneutes Compilieren funktioniert bei mir nur, wenn ich den zuvor automatisch generierten Ordner "build" (samt Inhalt) lösche, dann "generate_makefile" ausführe und dann zuletzt "make" aufrufe. Starte ich nach einem ersten, erfolgreichen Build-Vorgang einen weiteren über "make", dann erscheint direkt die Meldung "[100%] Built target master-brick.elf". Wenn ich dann ins "build" Verzeichnis schaue, dann liegt dort noch die .bin-Datei aus der Zeit des ersten Build-Vorgangs. Löschen des "build" Ordners und alles von vorne funktioniert wie gesagt - aber ist das tatsächlich richtig so? Herzlichen Dank nochmal für die schnelle Rückmeldung und viele Grüße, Tinkee24-7 Zitieren
photron Geschrieben September 2, 2016 at 07:52 Geschrieben September 2, 2016 at 07:52 ln -s: Das ist okay. Das build_environment_setup.sh Skript legt das exemplarisch schon für eine Firmware an. Ich habe das in der Dokumentation jetzt zu ln -sf geändert, das überschreibt dann den existierenden Symlink einfach. make: Das ist auch genau richtig so. Wenn du make das zweite mal aufrufst ohne Änderungen am Code gemacht zu haben, dann erkennt make, dass nichts zu tun ist weil du nichts geändert hast. Statt alles zu löschen kannst du aber einfach "make clean" aufrufen, damit make alle erzeugen Dateien löscht. Wenn du dann wieder make aufrufst wird die Firmware wieder neu kompiliert da make clean sie zuvor gelöscht hat. Zitieren
Tinkee24-7 Geschrieben September 2, 2016 at 09:26 Autor Geschrieben September 2, 2016 at 09:26 Hallo photron, super, besten Dank für die Tipps - wieder was dazugelernt! Guten Start ins Wochenende und viele Grüße, Tinkee24-7 Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.