Forum: Compiler & IDEs ZephyrOS / CMake: ".\bootstrap" ist entweder falsch geschrieben oder konnte nicht gefunden werden.


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Sebastian M. (gabbas1)


Angehängte Dateien:
  • preview image for 2.PNG
    2.PNG
    32,1 KB, 103 Downloads
  • preview image for 3.PNG
    3.PNG
    20,1 KB, 126 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

kurz zur Einordnung: ich flashe Firmware von ZephyrOS auf eine 
nRF52840_DK (Nordic Semiconductor). Dabei arbeite ich mit der Toolchain, 
wie im "Getting started" von Zepyhr angegeben:

- Windows 10 (cmd.exe)
- (Python3)
- West
- CMake
- Ninja
- GNU_Arm_Embedded_Toolchain

Alles funktioniert auch, heißt die Toolchain (GNU) wird erkannt und mit 
den Befehlen *"cmake -GNinja -DBOARD=nrf52840_pca10056 
-DCONF_FILE="prj.conf overlay-ot.conf" .."* und dem anschließendem 
Ninja wird die * zephyr.elf * erstellt (siehe 2.PNG).


Ein Problem tritt dann auf, wenn ich Code habe, bei dem C++ verwendet 
wird. Dies wird in einer .conf-Datei durch CPLUSPLUS=y aktiviert 
(https://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_CPLUSPLUS.html). 
Wird dies gemacht, wird der *Ninja*-Befehl mit folgendem Fehler 
abgebrochen (siehe 3.PNG).

- Der Befehl .\bootstrap ist falsch geschrieben oder konnte nicht 
gefunden werden.
- No patch step for 'ot'.


Wie gesagt, tritt dies nur auf, wenn ich ein "Sample" mit C++-Support 
CPLUSPLUS=y verwende. Ich habe die gesamte Toolchain für Zephyr schon 
komplett deinstalliert und alles neu aufgesetzt, mit dem gleichen 
Ergebnis. Ich kann anhand der Fehlermeldungen keine Fehlerursache 
ausmachen. Ich habe noch die CMakeError und CMakeOutput angehängt, falls 
das Hilft.

Ich bin Dankbar für jeden Hinweis und Input eurerseits. Vielleicht hat 
jemand eine Idee. Vielen Dank!

Gruß,
Sebastian

von Weihnachtsmann (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Sebastian M. (gabbas1)


Bewertung
0 lesenswert
nicht lesenswert
Weihnachtsmann schrieb:
> 
https://superuser.com/questions/1443762/error-while-building-zephyros-firmeware-with-cmake-ninja-and-cplusplus-c

Danke für den Hinweis. Leider ist das auch mein eigener 
(unbeantworteter) Beitrag in einem anderen Forum.

von Daniel -. (root)


Bewertung
0 lesenswert
nicht lesenswert
nur als Idee ... versuch mal die lange Kommandozeile aufzutrennen
und einzeln ausführen. z.B. den Teil vor &&
der sollte evtl im . Verzeichnis bootstrap Skript anlegen

die Pfade sind in windows und linux Stil gemischt, evtl auch ein Problem
der erste Pfad beginnt mit " ... wo ist die schliessende "?

von Nico D (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Hallo Sebastian. Hast du das Problem bei dir mittlerweile gelöst? Ich 
stehe nämlich aktuell vor dem gleichen Problem. Ich würde gerne 
Openthread mit Zephyr ausprobieren, aber es klappt bei mir nicht. Habe 
genau dieselben Fehler wie du.

Gruß

Nico

von Sebastian M. (gabbas1)


Bewertung
1 lesenswert
nicht lesenswert
Hallo Nico,

sehr interessant, dass bei dir das gleiche auftritt.

Im Endeffekt konnte ich mein Problem lösen und Zephyr läuft jetzt. Was 
ich gemacht habe:

Ich habe versucht Zephyr unter Linux (Ubuntu) zum laufen zu bekommen, 
doch auch da kam es zu ähnlichen Fehlermeldungen. Dann habe ich mehr 
oder weniger durch Zufall auch RIOT (hat nämlich auch OpenThread) auf 
dem gleichen Linux installiert mit allen Dependencies usw. Danach lief 
komischerweise auch Zephyr. Also scheinbar fehlt einfach was in der 
Anleitung zur Installation der Toolchain von Zephyr.

Was genau das ausschlaggebende war, kann ich dir leider nicht sagen. 
Aber du kannst ja mal alles nach der Anleitung 
(https://github.com/RIOT-OS/Tutorials   ab "Regular Setup without using 
a VM") schrittweise installieren und nach jedem Schritt probieren das 
Zephyr-hex zu erzeugen.

Vermutlich ist beim Punkt "Install Native dependencies" der Punkt "For 
C++ support also install g++-multilib: .." das ausschlaggebende gewesen. 
Wie das bei Windows ist kann ich leider nicht sagen, da ich mich dann 
aus Zeitmangel mit der Linux-Lösung zufrieden gegeben habe..

Hoffe das Hilft! Sag Bescheid wenn du was heraus gefunden hast, ich 
versuche da auch gern weiter zu helfen.


PS: Ich hab OpenThread-Netze mit Zephyr auf dem NXP-KW41Z und dem Nordic 
Semiconductor nRF52840 laufen und beide stürzen nach 2-3 Tagen im 
Leerlaufbetrieb ab. Also Zephyr, nicht das OT-Netz an sich.

MfG
Sebastian

von Nico D. (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Hallo Sebastian,

danke für deine Tipps. Ich hatte mir auch Ubuntu in VirtualBox 
installiert, aber da lief's auch erst nicht nach der Zephyr-Anleitung.

Ich habe es jetzt geschafft. Bei mir hat automake, autoconf und Libtool 
gefehlt. Jetzt kann ich das socket-Beispiel mit OpenThread erfolgreich 
erstellen und kompilieren.

Ich werde nun im nächsten Schritt untersuchen, ob Zephyr bei mir auch 
abstürzt (nutze ebenfalls Module mit nRF52840). Ich kann dann hier gerne 
ein Update dazu geben.

Funktioniert RIOT denn besser? Dann könnte ich mir das alternativ auch 
mal ansehen.

Gruß
Nico

von Sebastian M. (gabbas1)


Bewertung
0 lesenswert
nicht lesenswert
Hey Nico,

cool dass es bei dir jetzt auch läuft.  Wie Zephyr bei dir läuft würde 
mich sehr interessieren. Ich hatte es jetzt mehrfach laufen und es 
stürzt interessanterweise jedes mal nach ~36,4h ab (in 3 von 3 
Durchläufen).

RIOT ist noch schlimmer. Stabil laufen tut nur OpenThread vom Nordic 
Semiconductor nRF-SDK direkt, oder wenn du nicht an den nRF52840 
gebunden bist, dann kann ich noch den Kinetis Thread Stack von NXP in 
Verbindung mit dem NXP KW41Z empfehlen. Beide sind von Thread "certified 
components" und laufen bei mir bisher in der Tat sehr sehr gut.

MfG

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.