Ich arbeite an einer Web-App, um einige NodeMCU-Geräte zu programmieren, die mit der arduinoOTA-Bibliothek geflasht wurden.
http://esp8266.github.io/Arduino/versions/2.0.0/doc/ota_updates/ota_updates.html
Ich habe das Beispiel ausprobiert und der OTA-Upload der aus Arduino IDE kompilierten Binärdatei funktioniert.
Nehmen wir an, meine Web-App ermöglicht dem Benutzer das Codieren in Sketch. Gibt es einen Open-Source-Server- oder Clientseiten-Compiler, der den Sketch-Code in die Bin-Datei kompilieren kann?
Kommentare
- Wenn Sie die ausführliche Konsolenausgabe in der Arduino IDE aktivieren, werden alle ausgeführten Befehle zum Kompilieren und Verknüpfen angezeigt. Der Builder ist extern und Open Source
- @Juraj Bitte schreiben Sie dies als Antwort oder geben Sie eine URL für ein bereits vorhandenes Tutorial usw. an im Web, wenn Sie eines kennen.
- Der AVC GCC wird verwendet und ist Open Source gcc.gnu.org
iehe zum Beispiel Sloeber, das Arduino Eclipse-Plugin, wie es Arduino-Toolchain und Core-Pakete ohne Arduino-IDE verwendet.
Antwort
Arduino IDE führt externe Tools aus, um die Hex- oder Bin-Datei zu erstellen. Zuerst werden die Ino-Dateien eines Projekts vom arduino builder zur cpp-Datei verarbeitet. Dann ruft der Arduino Builder die Toolchain der MCU-Architektur auf – Compiler und Linker. Zum Beispiel AVR-Tools für 328p oder 2560; ARM-Toolchain von SAMD; xtensa-Tools für Espressif-Chips.
Neu ist Arduino CLI , die sich auf die Verwendung von Arduino mit der Befehlszeile konzentriert.
Der Arduino Builder, die Arduino CLI und der esp8266 Arduino Core sind Open Source. Extensa-Tools und Espressif SDK sind keine Open Source-Tools, aber kostenlos.
Antwort
Probieren Sie PlatformIO aus: https://platformio.org
Öffnungs- und plattformübergreifend.
Kommentare
- Großartige Antwort auf eine andere Frage 🙂
Antwort
Schauen Sie einfach mal rein hier https://github.com/arduino/Arduino/wiki/Build-Process , um den Prozess zu verstehen.
Tatsächlich ist Arduino-Code nicht „C oder“ C ++ „bei 100%. Sie können nicht direkt kompilieren, da einige Informationen fehlen. Wenn Sie mit der IDE „kompilieren“, werden die Dateien in einen temporären Ordner kopiert, am Anfang dieser Dateien werden einige Zeilen hinzugefügt und dann der grundlegende und bekannte avr aufgerufen -gcc. Wenn Sie einen dedizierten Server haben, müssen Sie nur nach dem avr-gcc-Paket gemäß dem Betriebssystem suchen. Beispiel: Für Debian: https://packages.debian.org/stretch/gcc-avr
Dann oder Sie senden direkt den Code, auf den avr-gcc wartet, oder Sie wenden auf den Code dieselben Änderungen an, die die IDE vor dem Senden des Codes an GCC vornimmt.
Hoffe diese Hilfe