Ik werk aan een web-app om enkele nodeMCU-apparaten te programmeren die werden geflashed met de arduinoOTA-bibliotheek.
http://esp8266.github.io/Arduino/versions/2.0.0/doc/ota_updates/ota_updates.html
Ik heb het voorbeeld geprobeerd en de OTA-upload van het binaire bestand gecompileerd met Arduino IDE werkt.
Laten we zeggen dat mijn web-app de gebruiker in staat stelt om in Sketch te coderen. Is er een open source server-side of client-side compiler die de Sketch-code in het bin-bestand kan compileren?
Opmerkingen
- schakel uitgebreide console-uitvoer in Arduino IDE in en je zult alle uitgevoerde opdrachten zien om te compileren en te koppelen. de builder is extern en het is Open Source
- zie bijvoorbeeld Sloeber, de Arduino Eclipse-plug-in, hoe het Arduino-toolchain en kernpakketten gebruikt zonder Arduino IDE
- @Juraj Schrijf dit als antwoord of geef een URL voor een tutorial, enz. die al bestaat op het web, als je er een kent.
- De AVC GCC wordt gebruikt en is open source gcc.gnu.org
Antwoord
Arduino IDE voert externe tools uit om het hex- of bin-bestand te maken. Eerst worden de ino-bestanden van een project verwerkt door arduino builder naar cpp-bestand. Vervolgens roept de arduino-bouwer de toolchain van de MCU-architectuur op – compiler en linker. Bijvoorbeeld AVR-tools voor 328p of 2560; ARM-toolchain van SAMD; xtensa tools voor Espressif-chips.
Nieuw is Arduino CLI , die zich richt op het gebruik van Arduino met de opdrachtregel.
De Arduino-bouwer, Arduino CLI en esp8266 Arduino-kern zijn Open Source. Extensa-tools en Espressif SDK zijn niet open source, maar zijn gratis.
Answer
Probeer PlatformIO: https://platformio.org
Opensource en cross-platform.
Opmerkingen
- Geweldig antwoord op een andere vraag 🙂
Antwoord
Kijk maar eens hier https://github.com/arduino/Arduino/wiki/Build-Process om het proces te begrijpen.
In feite is Arduino-code niet “C of C ++ “op 100%. U kunt “niet direct compileren omdat sommige informatie ontbreekt. Dit is de reden waarom wanneer u” compileert “met de IDE, het de bestanden kopieert naar een tijdelijke map, enkele regels toevoegt aan het begin van deze bestanden en vervolgens de basis en bekende avr -gcc. Als u een toegewijde server heeft, hoeft u alleen maar naar het avr-gcc-pakket te zoeken volgens het besturingssysteem. Bijvoorbeeld voor Debian: https://packages.debian.org/stretch/gcc-avr
Vervolgens of u verzendt rechtstreeks de code waar avr-gcc op wacht, of u past op de code dezelfde wijzigingen toe als de IDE uitvoert voordat de code naar GCC wordt verzonden.
Hoop dat deze hulp