Hallo, ich habe die Toolkette für meinen Raspberry PI pico unter Windows10 lt. Anleitung https://www.youtube.com/watch?v=B5rQSoOmR5w mit MinGW! zum Laufen gebracht (ich bin Anfänger, was ARM und entsprechende Tollketten betrifft). Ebenso habe ich das dort beschriebene Beispiel-Programm "Blink" in einem eigenen, vom SDK/pico/.... separaten Verzeichnis, linken und übersetzen (und natürlich laufen) lassen können. Nun wollte ich das Programm zur Ansteuerung von RGB-LEDs aus den pico-examples/pio/ws2812 in einem eigene, separaten Verzeichnis zum Laufen bringen. (zur folgenden Beschreibung siehe auch die angehängten Screenshots). Beim make habe ich nun folgendes Problem: C:\Users\ep7bu\RP_pico\Eigene\WS2812eigen\main.c:14:10: fatal error: ws2812.pio.h: No such file or directory 14 | #include "ws2812.pio.h" | ^~~~~~~~~~~~~~ make findet also die Datei "ws2812.pio.h" nicht, die sich im Unterverzeichnis "generated" des Projektordners befindet (kontrolliert, vorhanden!). Und nun meine Frage: wie muß die Anweisung in "CMakeLists.txt" heißen, damit make die fragliche Datei findet? Und noch eine Frage am Rande: was muß ich einstellen, damit sich die Git-Bash innerhalb des Terminalfensters von VS-Code öffnet und nicht als separates Fensters? Und wo kann ich Fontgröße der Gitbash einstellen? Vielen Dank schon mal für "sachdiehnliche Hinweise"!
... hier nochmal die CMakeLists.txt in einer besser lesbaren Version.
Text bitte als Text anhängen und nicht als Bild. Denn aus Bildern kann man Text schlecht rauskopieren.
Hat jetzt leider nicht direkt was mit deiner Frage zu tun. Aber hast du zufällig einen Raspberry Pi 3 oder 4 irgendwo rumliegen? Mit meinem RasPi 3 habe ich in letzter Zeit sehr viel für den Pico kompiliert und hatte bisher keine Probleme. Hab mich dabei immer direkt an die Doku gehalten (für RasPi 3 ab Kapitel 2): https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf
B. W. H. schrieb: > Nun wollte ich das Programm zur Ansteuerung von RGB-LEDs aus den > pico-examples/pio/ws2812 in einem eigene, separaten Verzeichnis zum > Laufen bringen. (zur folgenden Beschreibung siehe auch die angehängten > Screenshots). > Beim make habe ich nun folgendes Problem: > > C:\Users\ep7bu\RP_pico\Eigene\WS2812eigen\main.c:14:10: fatal error: > ws2812.pio.h: No such file or directory > 14 | #include "ws2812.pio.h" > | ^~~~~~~~~~~~~~ > > make findet also die Datei "ws2812.pio.h" nicht, die sich im > Unterverzeichnis "generated" des Projektordners befindet (kontrolliert, > vorhanden!). Da sollte sie aber eigentlich nicht liegen. Normalerweise entsteht im Projektordner ein Verzeichnis namens "build" und fast(*) alles temporäre Zeug landet dort. (*) die Ausnahme von der Regel ist eine pico_sdk_import.cmake, die direkt im Projektordner erzeugt wird. Vermutlich ist also schon beim bei der Konfiguration was völlig falsch gelaufen. Und tatsächlich ist deine CMakeLists.txt in mehrfacher Hinsicht grob fehlerhaft. Ich würde dir ja jetzt gerne diese Stellen zitieren, aber leider kann man aus Screenshots schlecht zitieren...
Yuhu, es hat geklappt!! Danke an alle, die sich die Mühe gemacht und Zeit genommen, mir zu antworten! Ich hatte die Doku zum RP2040 weiter durchstöbert und bin unter https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf in Kapitel 3.2.1.3 auf Infos gestoßen, die mir weitergeholfen haben. Folgende Dinge sind mir bei meinen zahlreichen "Rekursionsschleifen" beim Finden der Lösung noch aufgefallen: - vor neuem "cmake ...." das Unterverzeichnis "build" löschen! - in der "CMakeLists.txt" auf Groß/Kleinschreibung der Verz. und Dateien achten! (Sonst werden manche Dateien nicht gefunden!) - Wenn ich es richtig beobachtet habe, können Dateien nicht einfach ins Verezichnis kopiert, sondern müssen in VS-Code per "neue Datei" im Folder abgelegt werden. Aber da würde mich eine Verifizierung meiner Behauptung mal interessieren! Und hier meine CMakeLists.txt (Verzeichnisname geändert, sonst alle Dateien aus den examples): # set minimum required version of CMake: cmake_minimum_required(VERSION 3.12) # include build functions from Pico SDK: include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake) # set name of project (as PROJECT_NAME) and C/C++ standards project(WS2812_eigen C CXX ASM) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) if (PICO_SDK_VERSION_STRING VERSION_LESS "1.3.0") message(FATAL_ERROR "Raspberry Pi Pico SDK version 1.3.0 (or later) required. Your version is ${PICO_SDK_VERSION_STRING}") endif() # creates a pico-sdk subdirectory in our project for the libraries pico_sdk_init() # Tell CMake where to find the executable source file add_executable(WS2812_eigen) # generate the header file into the source tree as it is included in the RP2040 datasheet pico_generate_pio_header(WS2812_eigen ${CMAKE_CURRENT_LIST_DIR}/ws2812.pio OUTPUT_DIR ${CMAKE_CURRENT_LIST_DIR}/generated) target_sources(WS2812_eigen PRIVATE ws2812.c) target_link_libraries(WS2812_eigen PRIVATE pico_stdlib hardware_pio ) # create map/bin/hex/uf2 files pico_add_extra_outputs(${PROJECT_NAME}) # Additionally generate python and hex pioasm outputs for inclusion in the RP2040 datasheet add_custom_target(pio_ws2812_datasheet DEPENDS ${CMAKE_CURRENT_LIST_DIR}/generated/ws2812.py) add_custom_command(OUTPUT ${CMAKE_CURRENT_LIST_DIR}/generated/ws2812.py DEPENDS ${CMAKE_CURRENT_LIST_DIR}/ws2812.pio COMMAND Pioasm -o python ${CMAKE_CURRENT_LIST_DIR}/ws2812.pio ${CMAKE_CURRENT_LIST_DIR}/generated/ws2812.py ) Als nächstes werde ich mich mal ins PIO-Gedöns stürzen....
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.