Forum: Compiler & IDEs chipKit PIC32 gcc wird von Arduino nicht gefunden


von Peter D. (pdiener) Benutzerseite


Lesenswert?

Hallo zusammen,

ich bekomme folgenden Output wenn ich versuche, einen beliebigen Sketch 
für PIC32 zu compilieren:

```
fork/exec 
/home/pdiener/.arduino15/packages/chipKIT/tools/pic32-tools/1.43-pic32gc 
c/bin/pic32-g++:  no such file or directory

Compilation error: fork/exec 
/home/pdiener/.arduino15/packages/chipKIT/tools/pic32-tools/1.43-pic32gc 
c/bin/pic32-g++:  no such file or directory
```

Umgebung: Fedora

Arduino IDE 2.2.1

Board manager URL: 
https://github.com/chipKIT32/chipKIT-core/raw/master/package_chipkit_index.json

Eingestelltes Board: chipKit Pro MX7 (geht aber auch mit den anderen 
PIC32 Boards nicht)

Example: AnalogWriteFrequencyAndResolution (geht aber auch mit den 
anderen nicht)

Der bemängelte Pfad zum Compiler existiert und der Compiler lässt sich 
auch im Terminal ausführen

```
[pdiener@luna ~]$ 
/home/pdiener/.arduino15/packages/chipKIT/tools/pic32-tools/1.43-pic32gc 
c/bin/pic32-g++
pic32-g++: fatal error: no input files
compilation terminated.
[pdiener@luna ~]$
```

Dazu gibt es dieses Issue
https://github.com/chipKIT32/chipKIT-core/issues/438
was ich für groben Unfug halte, das ist zwar ein Compiler für 32 bit, 
aber ein Crosscompiler, wenn der von der libc 32 bit abhängen würde, 
würde er ohne die nicht laufen. Abgesehen davon ändert das Installieren 
von der glibc-devel.i686 nichts.

Dann hab ich noch hier was zum Thema gefunden:
https://openbci.com/forum/index.php?p=/discussion/2536/diy-cyton-exec-bin-pic32-g-file-does-not-exist-resolved

Allerdings erschließt sich mir der Kontext nicht, warum die dynamisch 
generierten Pfade zum executable des Compilers nicht korrekt sein 
sollten, im Output der IDE wird ja der richtige Pfad angezeigt und der 
soll angeblich nicht funktionieren. Den zu ändern auf einen absoluten 
Pfad hat nichts gebracht. Ich habe auch verifiziert, ob er den 
tatsächlich verwendet durch Veränderung auf einen ungültigen Pfad.

Es geht angeblich um die platform.txt
und dort die Zeilen:
```
compiler.path={runtime.tools.pic32-tools.path}/bin/
compiler.c.cmd=pic32-gcc
```

Hat irgendjemand eine Idee was da schief läuft?

von Εrnst B. (ernst)


Lesenswert?

Probier mal platformio..

hier ein Beispiel downloaden: (*)
https://registry.platformio.org/platforms/platformio/microchippic32/examples/arduino-internal-libs/platformio.ini

zipfile auspacken,
pio run
... installiert compiler, läuft durch ...

pio run -t upload
konnte ich mangels hardware nicht testen.

Compiler landet unter
~/.platformio/packages/toolchain-microchippic32/bin/pic32-g++
und ist "gcc version 4.8.3 chipKIT Compiler for PIC32 MCUs v1.43 
(chipKIT)"


*) das andere ("Blink") Beispiel hat einen kleinen Fehler im ini-file, 
ein leerzeichen durch unterstrich ersetzen, dann geht das auch.

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Ist eine interessante Plattform. Aber irgendwie erscheinen mir die 
Einstiegshürden schon deutlich höher. Das ist alles cloud managed, ich 
muss ein eigenes Bord anlegen mit eigenen Bibliotheken wahrscheinlich. 
Für die original Arduino IDE hab ich das schon ein paar mal gemacht und 
der Aufwand ist überschaubar. Das kann man erstmal selber hosten, bevor 
man es upstream bringt.

Platformio erscheint mir auch nicht besonders gepflegt, das Zeug hat vor 
Jahren die letzten changes gesehen. Ich brauch viele aktuelle 
Bibliotheken aus Arduino für TCP/IP, MQTT, Modbus...

von Harald K. (kirnbichler)


Lesenswert?

Peter D. schrieb:
> Das ist alles cloud managed

Und warum sollte man sich so etwas überhaupt ansehen? Wenn einem etwas 
gestohlen bleiben sollte, dann ist es Cloudkram.

von Wastl (hartundweichware)


Lesenswert?

Harald K. schrieb:
> Und warum sollte man sich so etwas überhaupt ansehen? Wenn einem etwas
> gestohlen bleiben sollte, dann ist es Cloudkram.

Full Ack.

von Εrnst B. (ernst)


Lesenswert?

Peter D. schrieb:
> Das ist alles cloud managed

Jetzt interessiert mich eure Definition von "cloud managed"?
Böse, weil es aus dem Internet heruntergeladen wird?
Wenn Compiler/toolchain & libraries erstmal heruntergeladen sind, läuft 
das komplett internet-frei...

von Harald K. (kirnbichler)


Lesenswert?

Εrnst B. schrieb:
> Wenn Compiler/toolchain & libraries erstmal heruntergeladen sind

Und, wer garantiert, daß Du das nächste Woche, nächstes Jahr nochmal 
herunterladen kannst?

Ein komplettes Downloadpaket zum Archivieren gibt es bei diesen ach so 
praktischen Lösungen nicht.

Ist die Cloud weg, kann man den Kram nicht mehr neu einrichten.

Ganz toll.

Bei richtigen Offline-Installationen lädt man ein vollständiges 
Installationspaket herunter, das man zusammen mit seinen Projektdateien 
archivieren und auch Jahre später wieder installieren kann - ganz ohne 
Internet.

Cloudinstaller aber bieten dem Anbieter die Möglichkeit, z.B. jederzeit 
auf ein schickes Abomodell umzusteigen.  Da steht der Nutzer schnell im 
Regen.

Wie war das mit Eagle? Konnte man früher kaufen und aufheben. Dann wurde 
ein schickes Abo draus, und jetzt ist es Bestandteil von irgendeinem 
fetten Softwarebrocken ...

von Εrnst B. (ernst)


Lesenswert?

Harald K. schrieb:
> Und, wer garantiert, daß Du das nächste Woche, nächstes Jahr nochmal
> herunterladen kannst?

Und, wer garantiert dir das bei Arduino?
Wer garantiert dir das bei der Toolchain, die du direkt von microchip 
herunterladen kannst?
Wer garantiert dir das bei den Bergen an Bibliotheken incl. 
Abhängigkeiten, die von Github gehostet werden?

Wenn das deine Sorge ist: Backups existieren, und platformio kann alles 
auch aus lokalen Ordnern oder git-repositories ziehen, musst du nur 
konfigurieren.

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Mir geht es darum, dass ich selbst Bibliotheken schreiben und vor allem 
ein eigenes Board konfigurieren muss. Und ich brauche die bestehenden 
Bibliotheken von Arduino. Die Hardware gibt es schon, aber die war nie 
für open source gedacht, d.h. da gibt es weder Schaltpläne noch 
Boardconfigs für irgendeine Plattform. Den Schaltplan hab ich 
rausgezeichnet und jetzt wollte ich eine Arduino Boardconfig anlegen und 
bin dann daran gescheitert, dass der Compiler nicht gefunden wird, 
obwohl er da ist.

Ob das nun Arduino oder Platformio wird, ist mir relativ egal, ich fange 
so oder so bei Null an. Aber die Bibliotheken für TCP/IP und damit 
verbundene Protokolle möchte ich gerne von Arduino nutzen. Den Stack von 
Microchip zu nehmen, kommt als open source nicht in Betracht.

Das sind die Randbedingungen. Also entweder bekommt man das mit 
Platformio einfach hin oder der Bug in dem Arduino Target für PIC32 muss 
gefunden werden. Das ist bestimmt nur eine Kleinigkeit mit irgendwelchen 
Single/ Doublequote Gedöns aber ich kenn mich mit dieser Configfile 
Syntax einfach nicht aus und die Debugausgaben sind mehr als dürftig.

Das ist ein keines Hobbyprojekt, für Geld würde ich das ja from scratch 
sauber mit make aufbauen, aber das ist mit dem Zeitbudget einfach 
overdone.

von Harald K. (kirnbichler)


Lesenswert?

Εrnst B. schrieb:
> Und, wer garantiert dir das bei Arduino?
> Wer garantiert dir das bei der Toolchain, die du direkt von microchip
> herunterladen kannst?

Du hast anscheinend nicht verstanden, was ein Installationsprogramm ist. 
Das ist eine (große) Datei, die lädt man herunter und hebt sie auf.

Um die Software zu installieren, braucht man nichts weiter, nur diese 
Datei.

Nach dem Motto "was man hat, hat man".

Der Cloudinstaller funktioniert nur solange, wie es den Hersteller gibt 
und der Hersteller Lust hat, das Programm auf diese Weise zu verteilen. 
Wenn nächstes Jahr auf ein Abomodell umgestellt wird, war's das.

Ein Backup hilft hier nur soweit, als daß man den Rechner, auf dem man 
den Kram installiert hat, penibelst als Image sichern muss. Kann man 
auch machen, ist aber umständlich, und vor allem hilft es nicht, wenn 
man sich --umgotteswillen-- einen neuen Rechner anschafft.

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Hab grad mal versucht, die chipKit package auf einer windowsbasierten 
Arduino-IDE zu installieren. Nicht sehr erfolgreich, das ist verbugt 
ohne Ende. Keine Ahnung, was da wieder falsch ist. Das knallt schon bei 
der Installation.

Downloading packages
chipKIT:pic32-tools@1.43-pic32gcc
chipKIT:pic32prog@v2.1.46
chipKIT:drivers-windows@v2
chipKIT:pic32@2.1.0
Installing chipKIT:pic32-tools@1.43-pic32gcc
Failed to install platform: chipKIT:pic32.
Error: 13 INTERNAL: Cannot install tool 
chipKIT:pic32-tools@1.43-pic32gcc: searching package root dir: no unique 
root dir in archive, found 
'C:\Users\DIE\AppData\Local\Arduino15\tmp\package-2817478911\bin' and 
'C:\Users\DIE\AppData\Local\Arduino15\tmp\package-2817478911\lib'

von Εrnst B. (ernst)


Lesenswert?

Harald K. schrieb:
> Du hast anscheinend nicht verstanden, was ein Installationsprogramm ist.

Und du hast scheinbar nicht verstanden, dass das bei Arduino genauso 
läuft... siehe:

Peter D. schrieb:
> Downloading packages
> chipKIT:pic32-tools@1.43-pic32gcc
> chipKIT:pic32prog@v2.1.46
...

Und du hast nicht verstanden, dass er Bibliotheken aus dem bösen 
Internet verwenden will:

Peter D. schrieb:
> Aber die Bibliotheken für TCP/IP und damit
> verbundene Protokolle möchte ich gerne von Arduino nutzen.

Du behauptest:

Harald K. schrieb:
> Um die Software zu installieren, braucht man nichts weiter, nur diese
> Datei.

Dein Installer enthält also allen Quelltext der jemals zum Thema 
Arduino im Internet veröffentlicht worden ist, in allen erdenklichen 
Versionen?

Wie ist dieser magische Installer bei dir angeliefert worden? 
Sattelschlepper voller Festplatten?


Sorry, bevor ich mich auf so einen magischen Installer verlasse, 
archivier ich mir lieber die Toolchain und alle verwendeten Bibliotheken 
in exakt den Versionen die ich brauche.
Ist ja nur ein Verzeichnis zusätzlich, was mit ins Archiv muss.

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Harald K. darum geht es überhaupt nicht. Es geht darum, dass ich ein 
neues Board lokal entwickeln muss. Ohne zuerst blind alle Datein zu 
erstellen, online upstream zu bringen und dann erst per Download 
verwenden zu können.

Der dafür nötige dev-Workflow ist bei platformio schlicht nicht erklärt. 
Wie pflegt man etwas lokal ein um es später upstream zu bringen?

Und ja - ein offline Installer ist nice to have.

Können wir diese Diskussion jetzt bitte beenden und uns auf die 
eigentliche Problematik konzentrieren?

Die Installation von ChipKit funktioniert interessanterweise Auf Windows 
Arduino 1.8.19 wie ich gerade rausgefunden habe, nicht jedoch auf 
Windows Arduino 2.1.0 mit oben gezeigter Fehlermeldung.

Fehlen da irgendwelche Rootverzeichnis Angaben in dem json file?

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Interessant. Arduino IDE 1.8.19 compiliert die Sketches für ChipKit auch 
einwandfrei. Das Problem, dass es den Compiler nicht findet, gibt es 
offenbar nur auf Linux, nicht auf Windows.

```
C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs 
-logger=machine -hardware C:\Program Files (x86)\Arduino\hardware 
-hardware C:\Users\DIE\AppData\Local\Arduino15\packages -tools 
C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files 
(x86)\Arduino\hardware\tools\avr -tools 
C:\Users\DIE\AppData\Local\Arduino15\packages -built-in-libraries 
C:\Program Files (x86)\Arduino\libraries -libraries 
C:\Users\DIE\Documents\Arduino\libraries 
-fqbn=chipKIT:pic32:chipkit_pro_mx7:USB=z_custom -ide-version=10819 
-build-path C:\Users\DIE\AppData\Local\Temp\arduino_build_648278 
-warnings=all -build-cache 
C:\Users\DIE\AppData\Local\Temp\arduino_cache_628508 
-prefs=build.warn_data_percentage=75 
-prefs=runtime.tools.drivers-windows.path=C:\Users\DIE\AppData\Local\Ard 
uino15\packages\chipKIT\tools\drivers-windows\v2 
-prefs=runtime.tools.drivers-windows-v2.path=C:\Users\DIE\AppData\Local\ 
Arduino15\packages\chipKIT\tools\drivers-windows\v2 
-prefs=runtime.tools.pic32prog.path=C:\Users\DIE\AppData\Local\Arduino15 
\packages\chipKIT\tools\pic32prog\v2.1.46 
-prefs=runtime.tools.pic32prog-v2.1.46.path=C:\Users\DIE\AppData\Local\A 
rduino15\packages\chipKIT\tools\pic32prog\v2.1.46 
-prefs=runtime.tools.pic32-tools.path=C:\Users\DIE\AppData\Local\Arduino 
15\packages\chipKIT\tools\pic32-tools\1.43-pic32gcc 
-prefs=runtime.tools.pic32-tools-1.43-pic32gcc.path=C:\Users\DIE\AppData 
\Local\Arduino15\packages\chipKIT\tools\pic32-tools\1.43-pic32gcc 
-verbose 
C:\Users\DIE\AppData\Local\Arduino15\packages\chipKIT\hardware\pic32\2.1 
.0\libraries\EEPROM\examples\eeprom_get\eeprom_get.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine 
-hardware C:\Program Files (x86)\Arduino\hardware -hardware 
C:\Users\DIE\AppData\Local\Arduino15\packages -tools C:\Program Files 
(x86)\Arduino\tools-builder -tools C:\Program Files 
(x86)\Arduino\hardware\tools\avr -tools 
C:\Users\DIE\AppData\Local\Arduino15\packages -built-in-libraries 
C:\Program Files (x86)\Arduino\libraries -libraries 
C:\Users\DIE\Documents\Arduino\libraries 
-fqbn=chipKIT:pic32:chipkit_pro_mx7:USB=z_custom -ide-version=10819 
-build-path C:\Users\DIE\AppData\Local\Temp\arduino_build_648278 
-warnings=all -build-cache 
C:\Users\DIE\AppData\Local\Temp\arduino_cache_628508 
-prefs=build.warn_data_percentage=75 
-prefs=runtime.tools.drivers-windows.path=C:\Users\DIE\AppData\Local\Ard 
uino15\packages\chipKIT\tools\drivers-windows\v2 
-prefs=runtime.tools.drivers-windows-v2.path=C:\Users\DIE\AppData\Local\ 
Arduino15\packages\chipKIT\tools\drivers-windows\v2 
-prefs=runtime.tools.pic32prog.path=C:\Users\DIE\AppData\Local\Arduino15 
\packages\chipKIT\tools\pic32prog\v2.1.46 
-prefs=runtime.tools.pic32prog-v2.1.46.path=C:\Users\DIE\AppData\Local\A 
rduino15\packages\chipKIT\tools\pic32prog\v2.1.46 
-prefs=runtime.tools.pic32-tools.path=C:\Users\DIE\AppData\Local\Arduino 
15\packages\chipKIT\tools\pic32-tools\1.43-pic32gcc 
-prefs=runtime.tools.pic32-tools-1.43-pic32gcc.path=C:\Users\DIE\AppData 
\Local\Arduino15\packages\chipKIT\tools\pic32-tools\1.43-pic32gcc 
-verbose 
C:\Users\DIE\AppData\Local\Arduino15\packages\chipKIT\hardware\pic32\2.1 
.0\libraries\EEPROM\examples\eeprom_get\eeprom_get.ino
Using board 'chipkit_pro_mx7' from platform in folder: 
C:\Users\DIE\AppData\Local\Arduino15\packages\chipKIT\hardware\pic32\2.1 
.0
Using core 'pic32' from platform in folder: 
C:\Users\DIE\AppData\Local\Arduino15\packages\chipKIT\hardware\pic32\2.1 
.0
Detecting libraries used...
"C:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\tools\\pi 
c32-tools\\1.43-pic32gcc/bin/pic32-g++"  -c -g -O2 -w -std=gnu++11 
-DARDUINO_ARCH_PIC32 -mno-smart-io -ffunction-sections -fdata-sections 
-mdebugger -Wcast-align -fno-short-double -ftoplevel-reorder 
-fno-exceptions -w -x c++ -E -CC -mprocessor=32MX795F512L 
-DF_CPU=80000000L -DARDUINO=10819 -D_BOARD_CEREBOT_MX7CK_ 
-DARDUINO_ARCH_PIC32 -DMPIDEVER=16777998 -DMPIDE=150 -DIDE=Arduino 
"-IC:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278/sketch" 
"-IC:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardwar 
e\\pic32\\2.1.0\\cores\\pic32" 
"-IC:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardwar 
e\\pic32\\2.1.0\\variants\\Cerebot_MX7cK" 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278\\sketch\\eep 
rom_get.ino.cpp"  -o nul
Alternatives for EEPROM.h: [EEPROM]
ResolveLibrary(EEPROM.h)
  -> candidates: [EEPROM]
"C:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\tools\\pi 
c32-tools\\1.43-pic32gcc/bin/pic32-g++"  -c -g -O2 -w -std=gnu++11 
-DARDUINO_ARCH_PIC32 -mno-smart-io -ffunction-sections -fdata-sections 
-mdebugger -Wcast-align -fno-short-double -ftoplevel-reorder 
-fno-exceptions -w -x c++ -E -CC -mprocessor=32MX795F512L 
-DF_CPU=80000000L -DARDUINO=10819 -D_BOARD_CEREBOT_MX7CK_ 
-DARDUINO_ARCH_PIC32 -DMPIDEVER=16777998 -DMPIDE=150 -DIDE=Arduino 
"-IC:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278/sketch" 
"-IC:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardwar 
e\\pic32\\2.1.0\\cores\\pic32" 
"-IC:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardwar 
e\\pic32\\2.1.0\\variants\\Cerebot_MX7cK" 
"-IC:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardwar 
e\\pic32\\2.1.0\\libraries\\EEPROM" 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278\\sketch\\eep 
rom_get.ino.cpp"  -o nul
Using cached library dependencies for file: 
C:\Users\DIE\AppData\Local\Arduino15\packages\chipKIT\hardware\pic32\2.1 
.0\libraries\EEPROM\utility\Deeprom.c
Using cached library dependencies for file: 
C:\Users\DIE\AppData\Local\Arduino15\packages\chipKIT\hardware\pic32\2.1 
.0\libraries\EEPROM\utility\compat.c
Using cached library dependencies for file: 
C:\Users\DIE\AppData\Local\Arduino15\packages\chipKIT\hardware\pic32\2.1 
.0\libraries\EEPROM\utility\flash.c
Generating function prototypes...
"C:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\tools\\pi 
c32-tools\\1.43-pic32gcc/bin/pic32-g++"  -c -g -O2 -w -std=gnu++11 
-DARDUINO_ARCH_PIC32 -mno-smart-io -ffunction-sections -fdata-sections 
-mdebugger -Wcast-align -fno-short-double -ftoplevel-reorder 
-fno-exceptions -w -x c++ -E -CC -mprocessor=32MX795F512L 
-DF_CPU=80000000L -DARDUINO=10819 -D_BOARD_CEREBOT_MX7CK_ 
-DARDUINO_ARCH_PIC32 -DMPIDEVER=16777998 -DMPIDE=150 -DIDE=Arduino 
"-IC:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278/sketch" 
"-IC:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardwar 
e\\pic32\\2.1.0\\cores\\pic32" 
"-IC:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardwar 
e\\pic32\\2.1.0\\variants\\Cerebot_MX7cK" 
"-IC:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardwar 
e\\pic32\\2.1.0\\libraries\\EEPROM" 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278\\sketch\\eep 
rom_get.ino.cpp"  -o 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278\\preproc\\ct 
ags_target_for_gcc_minus_e.cpp"
"C:\\Program Files 
(x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u 
--language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns 
--line-directives 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278\\preproc\\ct 
ags_target_for_gcc_minus_e.cpp"
Sketch wird kompiliert...
"C:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\tools\\pi 
c32-tools\\1.43-pic32gcc/bin/pic32-g++"  -c -g -O2 -Wall -Wextra 
-std=gnu++11 -DARDUINO_ARCH_PIC32 -mno-smart-io -ffunction-sections 
-fdata-sections -mdebugger -Wcast-align -fno-short-double 
-ftoplevel-reorder -fno-exceptions -mprocessor=32MX795F512L 
-DF_CPU=80000000L -DARDUINO=10819 -D_BOARD_CEREBOT_MX7CK_ 
-DMPIDEVER=16777998 -DMPIDE=150 -DIDE=Arduino 
"-IC:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278/sketch" 
"-IC:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardwar 
e\\pic32\\2.1.0\\cores\\pic32" 
"-IC:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardwar 
e\\pic32\\2.1.0\\variants\\Cerebot_MX7cK" 
"-IC:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardwar 
e\\pic32\\2.1.0\\libraries\\EEPROM" 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278\\sketch\\eep 
rom_get.ino.cpp"  -o 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278\\sketch\\eep 
rom_get.ino.cpp.o"
In file included from 
C:\Users\DIE\AppData\Local\Arduino15\packages\chipKIT\hardware\pic32\2.1 
.0\libraries\EEPROM\examples\eeprom_get\eeprom_get.ino:18:0:
C:\Users\DIE\AppData\Local\Arduino15\packages\chipKIT\hardware\pic32\2.1 
.0\libraries\EEPROM/EEPROM.h:43:30:  warning: type qualifiers ignored on 
function return type [-Wignored-qualifiers]
     operator const uint8_t() const       { return **this; }
                              ^
C:\Users\DIE\AppData\Local\Arduino15\packages\chipKIT\hardware\pic32\2.1 
.0\libraries\EEPROM/EEPROM.h:92:26:  warning: type qualifiers ignored on 
function return type [-Wignored-qualifiers]
     operator const int() const          { return index; }
                          ^
Compiling libraries...
Compiling library "EEPROM"
Zuvor kompilierte Datei wird verwendet: 
C:\Users\DIE\AppData\Local\Temp\arduino_build_648278\libraries\EEPROM\ut 
ility\compat.c.o
Zuvor kompilierte Datei wird verwendet: 
C:\Users\DIE\AppData\Local\Temp\arduino_build_648278\libraries\EEPROM\ut 
ility\flash.c.o
Zuvor kompilierte Datei wird verwendet: 
C:\Users\DIE\AppData\Local\Temp\arduino_build_648278\libraries\EEPROM\ut 
ility\Deeprom.c.o
Compiling core...
Zuvor kompilierte Datei wird verwendet: 
C:\Users\DIE\AppData\Local\Temp\arduino_build_648278\core\Board_Data.c.o
Using precompiled core: 
C:\Users\DIE\AppData\Local\Temp\arduino_cache_628508\core\core_chipKIT_p 
ic32_chipkit_pro_mx7_USB_z_custom_f3a7e7bad86846c41ad9e9e66219d0a5.a
Linking everything together...
"C:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\tools\\pi 
c32-tools\\1.43-pic32gcc/bin/pic32-g++"  -Wall -Wextra -Os 
"-Wl,--save-gld=C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_6482 
78/sketch.ld,-Map=C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_64 
8278/sketch.map,--gc-sections"  -mdebugger -mno-peripheral-libs 
-nostartfiles -mprocessor=32MX795F512L -o 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278/eeprom_get.i 
no.elf" 
"C:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardware\ 
\pic32\\2.1.0\\cores\\pic32/cpp-startup.S" 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278\\sketch\\eep 
rom_get.ino.cpp.o" 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278\\libraries\\ 
EEPROM\\utility\\Deeprom.c.o" 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278\\libraries\\ 
EEPROM\\utility\\compat.c.o" 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278\\libraries\\ 
EEPROM\\utility\\flash.c.o" 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278\\core\\Board 
_Data.c.o" 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278/..\\arduino_ 
cache_628508\\core\\core_chipKIT_pic32_chipkit_pro_mx7_USB_z_custom_f3a7 
e7bad86846c41ad9e9e66219d0a5.a" 
"-LC:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278" -lm -T 
"C:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardware\ 
\pic32\\2.1.0\\cores\\pic32/chipKIT-application-32MX795F512.ld"  -T 
"C:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\hardware\ 
\pic32\\2.1.0\\cores\\pic32/chipKIT-application-COMMON.ld"
"C:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\tools\\pi 
c32-tools\\1.43-pic32gcc/bin/pic32-objcopy"  -O ihex -j .eeprom 
--set-section-flags=.eeprom=alloc,load --no-change-warnings 
--change-section-lma .eeprom=0 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278/eeprom_get.i 
no.elf" 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278/eeprom_get.i 
no.eep"
"C:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\tools\\pi 
c32-tools\\1.43-pic32gcc/bin/pic32-bin2hex"  -a 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278/eeprom_get.i 
no.elf"
Bibliothek EEPROM im Ordner: 
C:\Users\DIE\AppData\Local\Arduino15\packages\chipKIT\hardware\pic32\2.1 
.0\libraries\EEPROM  (legacy) wird verwendet
"C:\\Users\\DIE\\AppData\\Local\\Arduino15\\packages\\chipKIT\\tools\\pi 
c32-tools\\1.43-pic32gcc/bin/pic32-size"  -A 
"C:\\Users\\DIE\\AppData\\Local\\Temp\\arduino_build_648278/eeprom_get.i 
no.elf"
Der Sketch verwendet 22396 Bytes (4%) des Programmspeicherplatzes. Das 
Maximum sind 520192 Bytes.
Globale Variablen verwenden 6388 Bytes (4%) des dynamischen Speichers, 
124684 Bytes für lokale Variablen verbleiben. Das Maximum sind 131072 
Bytes.
```

von Εrnst B. (ernst)


Lesenswert?

die Fehlermeldung "...pic32-g++:  no such file or directory" kann auch 
daher kommen, dass Bibliotheken fehlen, gegen die der Compiler gelinkt 
ist.

Test:
ldd 
~/.arduino15/packages/chipKIT/tools/pic32-tools/1.43-pic32gcc/bin/pic32- 
g++
Sollte keine Zeile mit "not found" ausgeben.

Falls doch, rausfinden was fehlt, nachinstallieren. Vorsicht, der 
Compiler ist vmtl. ein 32 Bit executable, also 32-Bit Version der 
Libraries benötigt...


Peter D. schrieb:
> Der dafür nötige dev-Workflow ist bei platformio schlicht nicht erklärt.
> Wie pflegt man etwas lokal ein um es später upstream zu bringen?

in den lib_deps kannst du einfach Ordnernamen oder Git-Urls angeben, 
statt der Bibliotheksnamen aus der Package-Registry.

Aber egal, wenn's dir nicht gefällt, bleib bei der Arduino-IDE.
Ich mag platformio, weil man eben direkt im Projekt die benötigten 
Versionen von Framework, Toolchain, Bibliotheken pinnen kann. Wenn ich 
das Projekt weitergebe, oder ein Kollege daran entwickelt, kann ich 
sicher sein, dass der exakt die Versionen verwendet, die da vorgegeben 
sind. Keine Überraschung, weil er irgendwas in der falschen Version 
installiert hat, es inkompatibel aktualisiert wurde, es drölf 
Arduino-Bibliotheken mit demselben Namen gibt etc.

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Εrnst B. schrieb:
> Test:
> ldd
> ~/.arduino15/packages/chipKIT/tools/pic32-tools/1.43-pic32gcc/bin/pic32-
> g++
> Sollte keine Zeile mit "not found" ausgeben.

Sieht so aus:
[pdiener@luna ~]$ ldd 
~/.arduino15/packages/chipKIT/tools/pic32-tools/1.43-pic32gcc/bin/pic32- 
g++
  linux-gate.so.1 (0xf7f0c000)
  libc.so.6 => /lib/libc.so.6 (0xf7cee000)
  /lib/ld-linux.so.2 (0xf7f0e000)
[pdiener@luna ~]$


Und das binary läuft ja auch, wenn ich es in der Konsole aufrufe. Von 
daher verstehe ich das Problem noch nicht. Ich kann mir höchstens 
vorstellen, dass da irgendwelche unprintbaren Zeichen mit in dem Aufruf 
von Arduino sind. Wenn ich es auf Windows installiere, funktioniert es 
ja und da unterscheiden sich nur die Binaries der Tools, da wird quasi 
eine andere Dependency aus dem Boardmanager json gezogen. Die 
Buildscripte sind genau die gleichen, von der selben Quelle.

: Bearbeitet durch User
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.