Andreas_Mainz Posted July 6, 2022 at 08:25 PM Share Posted July 6, 2022 at 08:25 PM Hallo admins, lch will die Firmware für den EVSE2 Bricklet neu bauen, da ich zuvor Änderungen machen will. (siehe anderer Post: Fi TypB vorhanden..) Alle Git repos liegen bei mir under /home/andreas/git. Dort liegt das Vereichnis evse-v2-bricklet Dann kommt das Verzeichnis software, da drunter das Verzeichnis src. Dort liegen folgende Verzeichnisse: brickletlib,configs,bricklib2,bootstrapper_xmc,brickletboot_xmc Und jetzt kommt die Frage: Wie muß ich die Symbolischen Links setzen und wo? Wenn ich im Verzeichnis software make aufrufe, kommt folgende Fehlermeldung: Zitat Could not find brickletboot_xmc. Please clone brickletboot_xmc git. make: *** [/home/andreas/git/evse-v2-bricklet/software/src/bricklib2/cmake/makefiles/Makefile_Bricklet_CoMCU.mk:28: check] Error 1 Also irgendetwas stimmt noch nicht.. Ich habe auch Docker installiert, wie ich es aber verwenden muß, ist mir auch nicht klar.. Vielen Dank für Hinweise zur Installation.. Gruß Andreas Quote Link to comment Share on other sites More sharing options...
photron Posted July 7, 2022 at 09:14 AM Share Posted July 7, 2022 at 09:14 AM Ich nehme an du bist diesen Schritten hier gefolgt: https://www.tinkerforge.com/de/doc/Tutorials/Tutorial_Build_Environment/Tutorial.html Zu Docker steht dort "Wenn der tinkerforge/build_environment_c Docker-Container installiert ist, wird dies von den Makefiles der Firmwares automatisch erkannt und die Kompilierung findet über den Docker-Container statt." Im Abschnitt "Bricklet mit Co-Prozessor Firmwares" ist beschrieben wie die Verzeichnisstruktur aussehen muss. Mir ist unklar wo du weg hast, dass alle diese gits nach evse-v2-bricklet/softwre/src/ müssen. Das ist nie der Fall. Quote Link to comment Share on other sites More sharing options...
Andreas_Mainz Posted July 7, 2022 at 10:03 AM Author Share Posted July 7, 2022 at 10:03 AM Also liegen diese repos parallel zu dem Evse-v2-Bricklet Verzeichnis? Könnte man das mit dem Docker nochmal erläutern oder funktioniert das alles automatisch? Quote Link to comment Share on other sites More sharing options...
Andreas_Mainz Posted July 7, 2022 at 10:07 AM Author Share Posted July 7, 2022 at 10:07 AM Ich sehe gerade, die gewünschte Verzeichnissstruktur wurde in der Beschreibung ergänzt, vielen Dank Quote Link to comment Share on other sites More sharing options...
photron Posted July 7, 2022 at 11:00 AM Share Posted July 7, 2022 at 11:00 AM 53 minutes ago, Andreas_Mainz said: Also liegen diese repos parallel zu dem Evse-v2-Bricklet Verzeichnis? Ja, wie es dort beschrieben steht. 54 minutes ago, Andreas_Mainz said: Könnte man das mit dem Docker nochmal erläutern oder funktioniert das alles automatisch? Das passiert alles automatisch. 51 minutes ago, Andreas_Mainz said: Ich sehe gerade, die gewünschte Verzeichnissstruktur wurde in der Beschreibung ergänzt, vielen Dank Ich habe keine neue Information hinzugefügt, sondern nur das was da schon vorher textuell stand noch mal anders dagestellt. Quote Link to comment Share on other sites More sharing options...
Andreas_Mainz Posted July 7, 2022 at 11:01 AM Author Share Posted July 7, 2022 at 11:01 AM Ich glaube es fehlt noch eine Lib: Zitat Please download xmclib from infineon and symlink it into the bricklib2/ folder. make: *** [/home/andreas/git/bricklib2/cmake/makefiles/Makefile_Bricklet_CoMCU.mk:32: check] Error 1 Quote Link to comment Share on other sites More sharing options...
photron Posted July 7, 2022 at 12:25 PM Share Posted July 7, 2022 at 12:25 PM Stimmt, sorry. https://dave.infineon.com/Libraries/XMCLib/XMC_Peripheral_Library_v2.1.16.zip Das ist die besagte xmclib. Irgendwohin entpacken und nach bricklib2/xmclib symlinken. Quote Link to comment Share on other sites More sharing options...
Andreas_Mainz Posted July 7, 2022 at 01:24 PM Author Share Posted July 7, 2022 at 01:24 PM so make startet nun, es fehlt aber gmake? Zitat andreas@home:~/git/evse-v2-bricklet/software$ make Using docker image to build. -- The C compiler identification is GNU 5.4.1 -- The CXX compiler identification is GNU 5.4.1 -- Check for working C compiler: /usr/bin/arm-none-eabi-gcc CMake Error: Generator: execution of make failed. Make command was: "/usr/bin/gmake" "cmTC_025a5/fast" -- Check for working C compiler: /usr/bin/arm-none-eabi-gcc -- broken CMake Error at /usr/share/cmake-3.7/Modules/CMakeTestCCompiler.cmake:51 (message): The C compiler "/usr/bin/arm-none-eabi-gcc" is not able to compile a simple test program. It fails with the following output: Change Dir: /home/andreas/git/evse-v2-bricklet/software/build/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_025a5/fast" vielen Dank für weitere Tipps Quote Link to comment Share on other sites More sharing options...
Andreas_Mainz Posted July 7, 2022 at 01:33 PM Author Share Posted July 7, 2022 at 01:33 PM Der Gmake Befehl ist da, aber: Zitat gmake: *** No rule to make target 'cmTC_025a5/fast'. Stop. Quote Link to comment Share on other sites More sharing options...
photron Posted July 7, 2022 at 02:11 PM Share Posted July 7, 2022 at 02:11 PM CMake testet den C Compiler im Docker Container, da ist mir gerade unklar warum das fehlschlagen kann. Das hat jetzt nichts mehr mit Programm auf deinem PC zu tun. Mach mal ein "make clean" und dann wieder make. Vielleicht liegen da von vorherigen Versuchen noch alte Dateien im Weg. Quote Link to comment Share on other sites More sharing options...
photron Posted July 7, 2022 at 02:11 PM Share Posted July 7, 2022 at 02:11 PM Gibt es bei dir das Verzeichnis /home/andreas/git/evse-v2-bricklet/software/build/CMakeFiles/CMakeTmp nach dem make Aufruf? Quote Link to comment Share on other sites More sharing options...
Andreas_Mainz Posted July 7, 2022 at 05:37 PM Author Share Posted July 7, 2022 at 05:37 PM Ja, das Verzeichnis ist genau an diesem Ort, ist aber leer.. Bei make clean kommen die gleichen Fehlermeldungen..und hat keine Verbesserung gebracht. Ich hänge mal die beiden Log Files an, eins scheint fehlerfrei (CMakeOutput.log) zu sein, das andere zeigt einen Fehler: Zitat 0.3.1/../../../arm-none-eabi/lib/libc.a(lib_a-exit.o): in function `exit': /build/newlib-pB30de/newlib-3.3.0/build/arm-none-eabi/newlib/libc/stdlib/../../../../../newlib/libc/stdlib/exit.c:64: undefined reference to `_exit' Scheint sehr Compilerspezifisch.. Wenn ihr mir da helfen könntet.. Gruß Andreas CMakeError.log CMakeOutput.log Quote Link to comment Share on other sites More sharing options...
photron Posted July 8, 2022 at 08:04 AM Share Posted July 8, 2022 at 08:04 AM In deinen CMake Logs taucht arm-none-eabi-gcc 10.3.1 auf. Im Docker Container ist aber 5.4.1 drin. Lösch bei dir mal von Hand das /home/andreas/git/evse-v2-bricklet/software/build Verzeichnis. Das sollte eigentlich "make clean" machen. Villeicht hat sich CMake falsche Pfade gemerkt. So richtig Sinn macht das dennoch nicht. Falls das auch nicht hilft, dann ersetz mal /home/andreas/git/bricklib2/cmake/makefiles/Makefile_Bricklet_CoMCU.mk durch die angehängt Datei, die gibt mehr Information aus. Dann nochmal /home/andreas/git/evse-v2-bricklet/software/build löschen, make ausführen und die ganze Ausgabe von make vorzeigen. Makefile_Bricklet_CoMCU.mk Quote Link to comment Share on other sites More sharing options...
rtrbt Posted July 8, 2022 at 08:08 AM Share Posted July 8, 2022 at 08:08 AM Noch ein Einwurf: Wenn du /home/andreas/git/evse-v2-bricklet/software/build gelöscht hast, sieh in /home/andreas/git/evse-v2-bricklet/ mit git status mal nach, dass du nicht noch andere Änderungen hast. Quote Link to comment Share on other sites More sharing options...
Andreas_Mainz Posted July 10, 2022 at 11:23 AM Author Share Posted July 10, 2022 at 11:23 AM Hallo, das Löschen von dem build Verzeichnis hat schonmal weitergeholfen: Jetzt wird der richtige Compiler aufgerufen. Jetzt gibt es nur noch ein Problem mit dem Configs Verzeichnis: wie und wo muß dies verlinkt werden, damit der Compiler das findet? Die Fehlermeldung dazu sieht wie folgt aus: Zitat @home:/home/andreas/git/evse-v2-bricklet/software# make Using docker image to build. make[1]: Entering directory '/home/andreas/git/evse-v2-bricklet/software/build' make[2]: Entering directory '/home/andreas/git/evse-v2-bricklet/software/build' make[3]: Entering directory '/home/andreas/git/evse-v2-bricklet/software/build' make[3]: Leaving directory '/home/andreas/git/evse-v2-bricklet/software/build' make[3]: Entering directory '/home/andreas/git/evse-v2-bricklet/software/build' [ 11%] Building C object CMakeFiles/aeabi_uidivmod.dir/src/bricklib2/bootloader/libgcc/aeabi_uidivmod.c.obj In file included from /home/andreas/git/evse-v2-bricklet/software/src/bricklib2/bootloader/bootloader.h:25:0, from /home/andreas/git/evse-v2-bricklet/software/src/bricklib2/bootloader/libgcc/aeabi_uidivmod.c:1: /home/andreas/git/evse-v2-bricklet/software/src/bricklib2/protocols/spitfp/spitfp.h:33:28: fatal error: configs/config.h: No such file or directory compilation terminated. CMakeFiles/aeabi_uidivmod.dir/build.make:62: recipe for target 'CMakeFiles/aeabi_uidivmod.dir/src/bricklib2/bootloader/libgcc/aeabi_uidivmod.c.obj' failed make[3]: *** [CMakeFiles/aeabi_uidivmod.dir/src/bricklib2/bootloader/libgcc/aeabi_uidivmod.c.obj] Error 1 make[3]: Leaving directory '/home/andreas/git/evse-v2-bricklet/software/build' CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/aeabi_uidivmod.dir/all' failed make[2]: *** [CMakeFiles/aeabi_uidivmod.dir/all] Error 2 make[2]: Leaving directory '/home/andreas/git/evse-v2-bricklet/software/build' Makefile:83: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/home/andreas/git/evse-v2-bricklet/software/build' /home/andreas/git/bricklib2/cmake/makefiles/Makefile_Bricklet_CoMCU.mk:98: recipe for target 'make' failed make: *** [make] Error 2 make: *** [/home/andreas/git/bricklib2/cmake/makefiles/Makefile_Bricklet_CoMCU.mk:33: check] Error 2 Meine Verzeichnisstruktur ist wie folgt: Quote Link to comment Share on other sites More sharing options...
photron Posted July 11, 2022 at 09:00 AM Share Posted July 11, 2022 at 09:00 AM 21 hours ago, Andreas_Mainz said: Jetzt gibt es nur noch ein Problem mit dem Configs Verzeichnis: wie und wo muß dies verlinkt werden, damit der Compiler das findet? Da gibt es nichts zu verlinken. Es geht hier um /home/andreas/git/evse-v2-bricklet/software/src/configs/config.h, das muss automatisch gefunden werden. Ist die Datei bei dir gelöscht? Hast du /home/andreas/git/configs angelegt? Oder den aus dem evse-v2-bricklet Clone dahin verschoben? Prüf mal bitte in allen Repositories, dass du da keine lokalen Änderungen oder gelöscht Dateien hast. Quote Link to comment Share on other sites More sharing options...
Andreas_Mainz Posted July 11, 2022 at 08:22 PM Author Share Posted July 11, 2022 at 08:22 PM So, ich konnte nun erfolgreich eine XMC Software bauen. Vielen Dank für die geduldige Unterstützung. Ich habe auch schon das Zbin File in das passende Directory vom Esp32 gelegt und mit Vsc eine neue Version gebaut. Dann habe ich das Merge File in die Wallbox runtergeladen und immerhin hat diese ganz normal wieder eingeschaltet. Es war nur alles in englischer Sprache, wo kann man die verwendete Sprache einstellen? Bisher habe ich an der Bricklet Software noch keine Änderung gemacht… Was mir aber nicht klar ist, wenn ich die EVSE - V2 Software gebaut habe, muss da nicht ein Firmware.C & .H File neu generiert werden? Ich habe nach dem Bild in VSC gesehen, dass diese C & H Files nicht upgedatet wurden, da ist mir noch nicht ganz klar, was ich hier machen muss. Immer dankbar für weitere Tipps.. Grüße Andreas Quote Link to comment Share on other sites More sharing options...
rtrbt Posted July 12, 2022 at 07:09 AM Share Posted July 12, 2022 at 07:09 AM 10 hours ago, Andreas_Mainz said: Ich habe auch schon das Zbin File in das passende Directory vom Esp32 gelegt und mit Vsc eine neue Version gebaut. Hast du den Dateinamen in z.B. bricklet_evse_v2_firmware_2_1_6.zbin geändert und die Firmware die da schon liegt z.b. in .zbin.old umbenannt? Der Bauprozess erzeugt die evse_v2_bricklet_firmware_bin.embedded.h/cpp automatisch aus einer Firmware-Datei die auf das Schema passt. Ein Trick aus der Praxis damit man mit den Firmware-Dateien nicht durcheinander kommt: Die Versionsnummer ist in evse-v2-bricklet/software/src/configs/config.h hinterlegt. Für Entwicklungs-Firmwares kannst du die FIRMWARE_VERSION_REVISION auf z.b. 99 ändern, die Firmware neu kompiliern und als bricklet_evse_v2_firmware_2_1_99.zbin nach esp32-firmware/software/src/modules/evse_v2/esp32-firmware/software/src/modules/evse packen. Das reduziert die Wahrscheinlichkeit, dass du durcheinander kommst welche Firmware jetzt gerade eingebettet wird/auf dem EVSE läuft. 10 hours ago, Andreas_Mainz said: Dann habe ich das Merge File in die Wallbox runtergeladen und immerhin hat diese ganz normal wieder eingeschaltet. Es war nur alles in englischer Sprache, wo kann man die verwendete Sprache einstellen? Das Webinterface kann deutsch und englisch und zeigt dir die Sprache an, die dein Browser als die bevorzugte angibt. Da sollte also zwischen den Firmwares kein Unterschied bestehen, wenn du nicht gerade deine Browser-Einstellungen geändert hast. Du kannst mit der Entwicklerkonsole deines Browsers nachsehen welche Sprachen er anfordert, indem du navigator.languages eingibst. Bei mir kommt z.B. Array(3) [ "de", "en", "en-US" ] als Ergebnis, also wird Deutsch vor Englisch bevorzugt. Quote Link to comment Share on other sites More sharing options...
Andreas_Mainz Posted July 12, 2022 at 06:09 PM Author Share Posted July 12, 2022 at 06:09 PM Nochmals vielen Dank, jetzt läuft alles..ich freue mich riesig! DC Fehlerstrommodul zeigt nun OK an, ich habe die EVSE Firmware auf Version 2_1_66 gesetzt, eine neue ESP32 Firmware gebaut und regulär runtergeladen. Der EVSE Bricklet wird dann ja automatisch überflashed. Funktioniert wie beschrieben. Jetzt müsstet ihr mir nochmal erklären, was ich machen muß wenn eine neue Version von Eurer Seite upgedatet wurde. git ...? Vielen Dank und Gruß Andreas Quote Link to comment Share on other sites More sharing options...
rtrbt Posted July 13, 2022 at 08:06 AM Share Posted July 13, 2022 at 08:06 AM Was du tun musst hängt davon ab, ob in der neuen Firmware (oder falls du Updates überspringst in irgendeiner zwischen der installierten und der die du neu installieren willst) die EVSE-Firmware aktualisiert wurde. Das erkennst du daran, dass dann im Changelog etwas in Richtung "[Änderung...] (durch Update auf Ladecontroller-Firmware 2.1.6)" steht. Falls das nicht der Fall ist, kannst du: Das esp32-firmware-git pullen (da du keine Änderungen außer der Firmware-Datei haben solltest, müsste das immer klappen) Dann sicherheitshalber ein git checkout warp2-x.y.z machen (Ich tagge immer den Commit, der dem Stand einer veröffentlichten Firmware entspricht. Das sorgt dafür, dass du auf einem definierten Stand bist und nicht ein paar unveröffentlichte Änderungen mitnimmst. Eigentlich sollte die Firmware auf jedem Commit funktionieren, aber bei größeren Änderungen kann das zwischenzeitlich auch mal nicht klappen.) Deine Firmware sollte dann noch in esp32-firmware/software/src/modules/evse_v2 liegen Die ESP-Firmware neu kompilieren und flashen Wenn es eine neue Ladecontroller-Firmware gibt, musst du folgendes davor in evse-v2-bricklet/ tun: Mit git stash deine Änderungen bei Seite legen Mit git pull unsere Änderungen holen Dann git checkout vX.Y.Z damit du auch hier auf dem Stand einer veröffentlichten Firmware bist. Deine Änderungen wieder anwenden mit git stash apply (Falls das nicht klappt musst du nachsehen, was sich an der Code-Struktur geändert hat) EVSE-Firmware neubauen und wieder nach esp32-firmware/software/src/modules/evse_v2 packen Dann die Schritte von oben um die neue ESP-Firmware zu bauen Quote Link to comment Share on other sites More sharing options...
Andreas_Mainz Posted July 13, 2022 at 10:58 AM Author Share Posted July 13, 2022 at 10:58 AM Das hört sich beherrschbar an, vielen Dank für die Hinweise. Ich nutze ja Beyond compare, da kann man die Unterschiede ja gut erkennen… Eine Frage hätte ich noch: Wenn man alles via WEB Interface bedient, braucht man dann den Taster (den ich noch nicht habe..) ? Quote Link to comment Share on other sites More sharing options...
rtrbt Posted July 13, 2022 at 12:08 PM Share Posted July 13, 2022 at 12:08 PM Wenn der Taster nicht angesteckt ist, denkt die Box permanent, dass er gedrückt wäre. Das ist erstmal nicht schlimm (weil der Ladecontroller auf Knopfdruckänderungen reagiert, d.h. dir wird nicht die ganze Zeit die Ladung abgebrochen), wird mit der nächsten Firmware-Version aber dazu führen, dass die Wallbox ~ 30 Sekunden langsamer bootet. Wenn du willst kannst du, damit der Taster die ganze Zeit gedrückt ist, Pin 3 und 4 der entsprechenden Buchse verbinden. Quote Link to comment Share on other sites More sharing options...
Andreas_Mainz Posted July 13, 2022 at 03:40 PM Author Share Posted July 13, 2022 at 03:40 PM Dann ist der Taster ein Öffner? Quote Link to comment Share on other sites More sharing options...
rtrbt Posted July 14, 2022 at 06:29 AM Share Posted July 14, 2022 at 06:29 AM Genau. Quote Link to comment Share on other sites More sharing options...
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.