Forum: Compiler & IDEs Makefile build Fehler - pipe: No such file or directory


von philip (Gast)


Lesenswert?

Hallo zusammen,

auf der Suche nach einem USB Mass Storage Device Bootloader für mein 
STM32F1 Projekt bin ich auf folgendes GitHub Projekt gestoßen:
https://github.com/Squonk42/STM32_MSC_Bootloader

Leider habe ich überhaupt keine Erfahrung mit der Benutzung von 
Makefiles. Ich habe bisher immer nur fertige IDEs benutzt, aktuelle 
verwende ich die CubeIDE. Trotzdem möchte ich versuchen, das Projekt zu 
builden.

Nachdem ich den Pfad zur make.exe aus dem STM32CubeIDE Pfad "c:\Program 
Files\STMicroelectronics\STM32CubeIDE_1.6.1\STM32CubeIDE\plugins\com.st. 
stm32cube.ide.mcu.externaltools.make.win32_1.5.0.202011040924\"  zu 
meiner Windows Path Umgebungsvariablen hinzugefügt habe, funktioniert 
schonmal der Befehl aus der "build Anleitung" auf der Github Seite: 
"make -C src"

Leider bekomme ich dann sofort folgende Fehlermeldung:
1
c:\Users\Public\Documents\STM\STM32_MSC_Bootloader_squonk_make>make -C src
2
make: Entering directory 'c:/Users/Public/Documents/STM/STM32_MSC_Bootloader_squ
3
onk_make/src'
4
make: ../libopencm3/mk/genlink-config.mk:27: pipe: No such file or directory
5
make: ../libopencm3/mk/genlink-config.mk:28: pipe: No such file or directory
6
make: ../libopencm3/mk/genlink-config.mk:29: pipe: No such file or directory
7
make: ../libopencm3/mk/genlink-config.mk:30: pipe: No such file or directory
8
make: ../libopencm3/mk/genlink-config.mk:31: pipe: No such file or directory
9
../libopencm3/mk/genlink-config.mk:47: No match for the FPU flags
10
../libopencm3/mk/genlink-config.mk:52: stm32f103c8t6 not found in ../libopencm3/
11
ld/devices.data
12
../libopencm3/mk/genlink-config.mk:63: ../libopencm3/lib/libopencm3_.a library v
13
ariant for the selected device does not exist.
14
  CC    stm32-msc-bootloader.c
15
arm-none-eabi-gcc: error: missing argument to '-mcpu='
16
make: *** [../rules.mk:126: ../bin/stm32-msc-bootloader.o] Error 1
17
make: Leaving directory 'c:/Users/Public/Documents/STM/STM32_MSC_Bootloader_squo
18
nk_make/src'


Evtl. ist der Hauptfehler dieser hier (und alle Weiteren nur 
Folgefehler):
1
make: ../libopencm3/mk/genlink-config.mk:27: pipe: No such file or directory

Und hier der Inhalt von genlink-config.mk Zeile 27:
1
genlink_family    :=$(shell $(OPENCM3_DIR)/scripts/genlink.py $(DEVICES_DATA) $(DEVICE) FAMILY)

Wäre klasse wenn mir jemand einen Hinweis geben könnte, was da schief 
läuft. Durch googeln bin ich zu keinem Ergebnis gekommen.

Vielen Dank!

Gruß,

Philipp

von Oliver S. (oliverso)


Lesenswert?

philip schrieb:
> make: ../libopencm3/mk/genlink-config.mk:27: pipe: No such file or
> directory

Was genau verstehst du denn an der Meldung nicht?

Oliver

von Oliver S. (oliverso)


Lesenswert?

Oder anders gefragt: Wenn du nach der Anleitung vorgehst, was passiert 
dann bei
make -C libopencm3

Anscheinend sind die mitgelieferten Sourcen zu libopencm3 unvollständig, 
oder das makefile ist nicht in Ordnung. Die libopencm3 kannst du dir 
zwar manuell von github holen, das lässt aber für den Rest des Projektes 
auch nichts Gutes erwarten.

Oliver

: Bearbeitet durch User
von philip (Gast)


Lesenswert?

Oliver S. schrieb:
> Oder anders gefragt: Wenn du nach der Anleitung vorgehst, was
> passiert dann bei
> make -C libopencm3
> Anscheinend sind die mitgelieferten Sourcen zu libopencm3 unvollständig,
> oder das makefile ist nicht in Ordnung. Die libopencm3 kannst du dir
> zwar manuell von github holen, das lässt aber für den Rest des Projektes
> auch nichts Gutes erwarten.
> Oliver

Der Befehl make -C libopencm3 funktioniert einwandfrei, es werden alle 
files compiliert und die entsprechenden Librarys erzeugt.



> make: ../libopencm3/mk/genlink-config.mk:27: pipe: No such file or

> directory

Ich verstehe erstens nicht, was der Zusatz "pipe:" bedeutet. Außerdem 
verstehe ich die Meldung "No such file or directory" nicht, da die Datei 
genlink.py im Verzeichnis libopencm3/scripts/ bei mir exisitert.

von Joe J. (j_955)


Lesenswert?

arm-none-eabi-gcc: error: missing argument to '-mcpu='

Außerdem:
Vermutlich irgendein Compiler Schalter für die Konfiguration vom 
Build(customizing), check das mal.
Pipe könnte hier bedeuten, dass die Befehlszeile unvollständig ist und 
der Build hier stockt.

jo

: Bearbeitet durch User
von Oliver S. (oliverso)


Lesenswert?

philip schrieb:
> Außerdem
> verstehe ich die Meldung "No such file or directory" nicht, da die Datei
> genlink.py im Verzeichnis libopencm3/scripts/ bei mir exisitert.

Ist ja prima, nur steht die nicht in der Fehlermeldung.

Der andere übliche Klassiker in Verbindung mit Python ist die falsche 
Version.

Oliver

von philip (Gast)


Lesenswert?

Joe J. schrieb:
> arm-none-eabi-gcc: error: missing argument to '-mcpu='
>
> Außerdem:
> Vermutlich irgendein Compiler Schalter für die Konfiguration vom
> Build(customizing), check das mal.
> Pipe könnte hier bedeuten, dass die Befehlszeile unvollständig ist und
> der Build hier stockt.
>
> jo

Das wird wahrscheinlich eine folge von diesem Fehler hier sein:
1
../libopencm3/mk/genlink-config.mk:52: stm32f103c8t6 not found in ../libopencm3/
2
ld/devices.data
Habe mir daraufhin die devices.data Datei angeschaut. Dort gibt es aber 
den Eintrag:
1
stm32f103?8* stm32f1 ROM=64K RAM=20K
Warum kann er also das Device nicht finden?

von pegel (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe das unter Linux probiert und vor:

make -C libopencm3

noch libopencm3 komplett geladen:

git clone https://github.com/libopencm3/libopencm3

dann läuft es durch.

von philip (Gast)


Lesenswert?

pegel schrieb:
> Ich habe das unter Linux probiert und vor:
>
> make -C libopencm3
>
> noch libopencm3 komplett geladen:
>
> git clone https://github.com/libopencm3/libopencm3
>
> dann läuft es durch.

Vielen Dank für das kompilierte .bin File.

Hab es gerade auf mein BluePill Board geflasht. Mein Win7 erkennt das 
USB Device zwar, das schreiben einer Datei in den Flash per Drag&Drop 
aber leider nicht. Wobei ich nicht mal weiß, ob das überhaupt 
funktionieren soll. Die Beschreibung des Projekts ist mehr als dürftig.
Schaue ich in den Code, dann ergibt sich eher der Eindruck als würde die 
Datei in den RAM geschrieben werden.

Fazit:
Damit ich ein File in den Flash schreiben kann, müsste ich das Programm 
noch modifizieren.
Da es mir leider nicht gelingt, das Projekt zu kompilieren, muss ich an 
dieser Stelle wohl erstmal aufgeben.

Falls doch noch jemand eine Idee hat, wie ich die Fehlermeldungen im 
Build Prozess beheben kann (Ich nutze einen Win 7 Rechner), gerne her 
damit.

Bis da hin werde ich mich erstmal nach einem anderen Projekt mit dieser 
Funktionalität umschauen.

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
Noch kein Account? Hier anmelden.