Jump to content
View in the app

A better way to browse. Learn more.

Tinkerunity

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Geschrieben

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?

Geschrieben

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!

Geschrieben
  • Autor

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.

 

Geschrieben
  • Autor

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.

Geschrieben
  • Autor

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.

Geschrieben

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 :D

Geschrieben
  • Autor

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?

 

Geschrieben

cmake saugen, da kommst du denke ich nicht drum herum...

Geschrieben
  • Autor

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.

 

Geschrieben

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 :D

Geschrieben
  • Autor

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.

Geschrieben

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 :D Vielleicht wurdest du ja dennoch inspiriert ^^

Geschrieben
  • Autor

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.

Geschrieben
  • Autor

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  ;D

 

So und das alles steht jetzt im Wiki unter "Firmware".

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.