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