Plenz Geschrieben October 26, 2012 at 19:29 Geschrieben October 26, 2012 at 19:29 Ich würde mich gern mal vorsichtig an die Aufgabe herantasten, mein IO4-Bricklet mit ein paar speziellen Funktionen zu erweitern. Sprich: private Extrawurst ohne öffentliches Interesse. In der Docus steht etwas von Github und Clonen - aber muss ich das erstens verstehen und zweitens machen? Ich kann doch einfach die C-Sources so runterladen, wie sie dort zugänglich sind. Oder würde mir ohne das Clonen etwas fehlen? Und wo ich beim Thema bin: wieviel des verfügbaren Speicherplatzes belegt die jetzige Firmware? Zitieren
AuronX Geschrieben October 26, 2012 at 20:44 Geschrieben October 26, 2012 at 20:44 Runterladen des Quellcodes sollte für dich äquivalent sein. Klonen bedeutet, dass du Git benutzt um an den Quellcode zu gelangen, das ist ein Versionsverwaltungssystem. Der Nutzen in Git liegt an zwei Stellen: - du kannst es auch für deinen Kram als Versionsverwaltung nutzen (vereinfacht: als Lösung zum Rückgängig machen von Änderungen und zum merken von funktionierenden Versionen) - du könntest das ganze zeug auf diese Weise auch wieder anderen zugänglich machen (z.B. via Github) Ist aber beides nciht zwingend nötig, insofern: ZIP ZIP! Zitieren
Plenz Geschrieben October 27, 2012 at 06:36 Autor Geschrieben October 27, 2012 at 06:36 Danke, aber zum Rückgängigmachen genügt mir die Backup-Funktion meines Editors, und meinen Code braucht sowieso niemand, es geht um die Decodierung von 4 Tasten einer bestimmten Fernbedienung. Zitieren
Plenz Geschrieben October 27, 2012 at 09:08 Autor Geschrieben October 27, 2012 at 09:08 Noch eine Frage: wie setze ich dies um, ohne GIT zu benutzen? "Dann wird noch die bricklib benötigt, diese muss in den software/src/ Ordner der Firmware geclont werden (ein Symlink funktioniert auch)" Ich habe die ZIP heruntergeladen und habe ein Verzeichnis "Tinkerforge-bricklib-2b5c016" mit Unterverzeichnissen und Dateien. Was genau davon soll ich in mein Projekt io4\software\src\ kopieren? Wenn es mir gelungen ist, eine funktionierende Firmware zu kompilieren (erst mal ohne Modifikationen), schreibe ich gern eine Schritt-für-Schritt-Anleitung ins Wiki. Zitieren
Plenz Geschrieben October 27, 2012 at 10:47 Autor Geschrieben October 27, 2012 at 10:47 Ich glaube, ich habe es rausgekriegt, und zwar anhand der #include-Zeilen in io.c. Demnach habe ich mir auch noch das Archiv "bricklet.lib" runtergeladen und so in meine Verzeichnisstruktur kopiert, dass die #include-Zeilen passen. Zitieren
AuronX Geschrieben October 27, 2012 at 10:48 Geschrieben October 27, 2012 at 10:48 Also überall wo "clonen" steht müsste auch "kopieren" funktionieren... (kopieren ist ja git-frei ^^) Ich kann selbst auch nur raten, ich vermute im src-ordner muss dann das liegen was im bricklib-ordner war. Also wird aus Tinkerforge-bricklib-2b5c016/unterverzeichnis-oder-datei io4/software/src/unterverzeichnis-oder-datei Ist aber auch nur nach bestem Wissen und Gewissen geraten Zitieren
Plenz Geschrieben October 27, 2012 at 11:48 Autor Geschrieben October 27, 2012 at 11:48 So weit, so gut. Ich habe ein bisschen im Forum herumgesucht und bin auf dieses Thema gestoßen. Ich habe die dort erwähnte Installationsdatei arm-2011.09-69-arm-none-eabi.exe runtergeladen und installiert. Was mir immer noch fehlt, ist das in generate_makefile.bat aufgerufene "cmake". Stattdessen gibt es ein cs-make, das aber die benutzen Optionen -E und -G bemeckert. Was tun? Zitieren
AuronX Geschrieben October 27, 2012 at 21:03 Geschrieben October 27, 2012 at 21:03 cmake saugen, da kommst du denke ich nicht drum herum... Zitieren
Plenz Geschrieben October 27, 2012 at 21:36 Autor Geschrieben October 27, 2012 at 21:36 Runterladen? Danke für den Hinweis. In der Anleitung steht über den GCC, dass man ihn benötigt und runterladen muss. Über CMake steht da nur, dass er benötigt wird. Deshalb dachte ich, bei dem, was ich runtergeladen hatte, müsste alles dabei gewesen sein. Zitieren
AuronX Geschrieben October 28, 2012 at 12:42 Geschrieben October 28, 2012 at 12:42 Das sollte TF dann vielleicht nochmal klarstellen... Falls du es nicht inzwischen selbst rausgefunden hast: cmake ist dazu da, dass man auf mehreren Plattformen kompilieren kann, also cmake erzeugt dir am Ende deine Dateien zum bauen (z.B. makefiles unter linux oder csproj wenn du mit Visual Studio bauen möchtest). Aber ich glaube da du auf den GCC angewiesen bist wirst du wohl am besten auf makefiles zurückgreifen wollen ^^ Wenn du unter Linux arbeitest dann passt das, ansonsten kann es dir auch passieren, dass du dir noch make besorgen musst. Alles Dinge von denen ich übrigens keine tiefe Ahnung habe Zitieren
Plenz Geschrieben October 28, 2012 at 20:42 Autor Geschrieben October 28, 2012 at 20:42 Nun, das scheint noch eine relativ kleine Hürde gewesen zu sein. Also cmake runtergeladen und installiert. Dann wieder generate_makefile.bat aufgerufen. Fehler: cmake vermisst ein Verzeichnis "build". Wie was wo? Zum Glück wird es etwas tiefer auf der Seite "Firmware und Plugins" erwähnt. Also "\build" im Verzeichnis ...\software angelegt. Dann wieder generate_makefile.bat aufgerufen. Fehler: cmake vermisst im Verzeichnis \build eine Datei names CMakeLists.txt. Nach einigem Suchen finde ich sie in der ZIP-Datei des IO4. Dann wieder generate_makefile.bat aufgerufen. Fehler: Could not find toolchain file: toolchains/arm-none-eabi.cmake Auf meinem Computer gibt es kein Verzeichnis "toolchains". Meine letzte Hoffnung: die ZIP-Datei. Tatsächlich: unter dem Verzeichnis "build". Schön, dann weiß ich ja sogar, wo das Zeug hingehört. Dann wieder generate_makefile.bat aufgerufen. Ha! Mein Computer ist richtig am arbeiten! Zu früh gefreut: CMake Error at CMakeLists.txt:30 (ADD_EXECUTABLE): add_executable called with incorrect number of arguments -- Configuring incomplete, errors occurred! CMake Error at CMakeLists.txt:32 (SET_TARGET_PROPERTIES): set_target_properties Can not find target to add properties to: io4-bricklet.elf CMake Error at CMakeLists.txt:35 (SET_TARGET_PROPERTIES): set_target_properties Can not find target to add properties to: io4-bricklet.elf CMake Error at CMakeLists.txt:40 (SET_TARGET_PROPERTIES): set_target_properties Can not find target to add properties to: io4-bricklet.elf Ich glaube, ich muss an dieser Stelle mal wieder um Hilfe bitten. Zitieren
AuronX Geschrieben October 29, 2012 at 07:11 Geschrieben October 29, 2012 at 07:11 Ich habe keine Ahnung von diesem cmake-projekt, deswegen sollte photron oder so sich hier nochmal äußern. Von mir gibt es dennoch einen Versuch: Grundsätzlich kann so ein cmake-script aus verschiedenen CMakeLists.txt bestehen. Es wäre also möglich, dass du die falsche erwischt hast. Versuche am besten eine im root-verzeichnis des zip-files zu finden. Ansonsten finde ich es komisch, dass du sie im build-verzeichnis ablegen musstest. Ich kenne das nur so: Du hast eine Ordnerstruktur mit Quellcode (bei dir \software usw.) und legst dort einen build-ordner an. Jetzt gehst du in diesen build-ordner und rufst "cmake .." auf. Cmake legt jetzt alles zum kompilieren dort rein und du hast vorher nie etwas dort reingelegt. Aber vorsicht, das ist einfach nur so wie ich es kenne und das kann verdammt falsch sein Vielleicht wurdest du ja dennoch inspiriert ^^ Zitieren
Plenz Geschrieben October 29, 2012 at 09:10 Autor Geschrieben October 29, 2012 at 09:10 Das mit dem Verzeichnis hat sich schon erledigt, es lag daran, dass ich in der BAT-Datei beim Rumexperimentieren ein ".\" gelöscht hatte. Meine bisherigen Erkenntnisse habe ich im Wiki abgelegt: http://www.tinkerunity.org/wiki/index.php/Firmware Aktuell würde ich gern wissen, woher die Fehler in CMakeLists.txt kommen. Ich habe das auf dem ZIP-Paket des Bricklets genommen. Zitieren
Plenz Geschrieben October 29, 2012 at 19:17 Autor Geschrieben October 29, 2012 at 19:17 Ich hab's heute noch mal radikal versucht: nicht nach der try-und-error-Methode einzelne Dateien ausgepackt und kopiert, sondern (nachdem ich nun wusste, was gebraucht wird), ganze Verzeichnisse aus der ZIP-Datei auf die Festplatte gezogen. Und siehe da: es ging! Testweise mal schnell die Versionsnummer geändert, kompiliert und geflasht. Mein IO4 hat jetzt die Version 7.0.0 So und das alles steht jetzt im Wiki unter "Firmware". 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.