Esiste un compilatore open source per i codici di Arduino Sketch?

Sto lavorando a unapp Web per programmare alcuni dispositivi nodeMCU su cui è stato eseguito il flashing della libreria arduinoOTA.

http://esp8266.github.io/Arduino/versions/2.0.0/doc/ota_updates/ota_updates.html

Ho provato lesempio e il caricamento OTA del file binario compilato dallIDE di Arduino funziona.

Supponiamo che la mia app web consenta allutente di scrivere codice in Sketch. Esiste un compilatore open source lato server o lato client in grado di compilare il codice Sketch nel file bin?

Commenti

  • attiva loutput dettagliato della console nellIDE di Arduino e vedrai tutti i comandi eseguiti per compilare e collegare. il builder è esterno ed è Open Source
  • vedi ad esempio Sloeber, il plugin Arduino Eclipse, come utilizza la toolchain Arduino ei pacchetti core senza IDE Arduino
  • @Juraj Per favore scrivi come risposta o fornisci lURL per un tutorial, ecc. che esiste già sul Web, se ne conosci uno.
  • Viene utilizzato AVC GCC ed è open source gcc.gnu.org

Risposta

LIDE di Arduino esegue strumenti esterni per creare il file hex o bin. Per prima cosa i file ino di un progetto vengono elaborati da arduino builder in un file cpp. Quindi il generatore di arduino invoca la toolchain dellarchitettura MCU: compilatore e linker. Ad esempio strumenti AVR per 328p o 2560; Toolchain ARM di SAMD; Strumenti xtensa per chip Espressif.

La novità è Arduino CLI , che si concentra sullutilizzo di Arduino con riga di comando.

Il generatore di Arduino, la CLI di Arduino e il core di Arduino esp8266 sono Open Source. Gli strumenti Extensa e Espressif SDK non sono open source, ma sono gratuiti.

Risposta

Prova PlatformIO: https://platformio.org

opensource e multipiattaforma.

Commenti

  • Ottima risposta a qualche altra domanda 🙂

Risposta

Dai unocchiata qui https://github.com/arduino/Arduino/wiki/Build-Process per capire il processo.

In effetti il codice Arduino non è “C o C ++ “al 100%. Non puoi compilare direttamente in quanto mancano alcune informazioni. Questo è il motivo per cui quando “compili” con lIDE, esso copia i file in una cartella temporanea, aggiunge alcune righe allinizio di questi file e quindi chiama il base e ben noto avr -gcc. Se hai un server dedicato, devi solo cercare il pacchetto avr-gcc in base al sistema operativo. Ad esempio, per Debian: https://packages.debian.org/stretch/gcc-avr

Quindi o invii direttamente il codice che avr-gcc sta aspettando, oppure applichi al codice le stesse modifiche che lIDE sta facendo prima di inviare il codice a GCC.

Spero che questo aiuto

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *