Er der en open source-kompilator til Arduino Sketch-koder?

Jeg arbejder på en webapp for at programmere nogle nodeMCU-enheder, der blev blinket med arduinoOTA-biblioteket.

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

Jeg prøvede eksemplet, og OTA-upload af den binære fil udarbejdet fra Arduino IDE fungerer.

Lad os sige, at min webapp tillader brugeren at kode i Sketch, er der nogen open source-serverside eller klientsidecompiler, der kan kompilere Sketch-koden i bin-filen?

Kommentarer

  • tænd for den detaljerede konsoloutput i Arduino IDE, og du vil se alle de udførte kommandoer til at kompilere og linke. Byggeren er ekstern og den er Open Source
  • se for eksempel Sloeber, Arduino Eclipse-pluginet, hvordan det bruger Arduino værktøjskæde og kernepakker uden Arduino IDE
  • @Juraj Skriv dette som et svar eller angiv URL til en tutorial osv., der allerede findes på nettet, hvis du kender en sådan.
  • AVC GCC bruges og er open source gcc.gnu.org

Svar

Arduino IDE kører eksterne værktøjer til at oprette hex- eller bin-filen. Først behandles ino-filerne i et projekt af arduino builder til cpp-fil. Derefter påberåber arduino-builder værktøjskæden til MCU-arkitekturen – kompilator og linker. For eksempel AVR-værktøjer til 328p eller 2560; ARM værktøjskæde fra SAMD; xtensa-værktøjer til Espressif-chips.

Nyt er Arduino CLI , som fokuserer på at bruge Arduino med kommandolinje.

Tha Arduino builder, Arduino CLI og esp8266 Arduino core er Open Source. Extensa-værktøjer og Espressif SDK er ikke open source, men er gratis.

Svar

Prøv PlatformIO: https://platformio.org

Åbner kilde og krydser platform.

Kommentarer

  • Fantastisk svar på et andet spørgsmål 🙂

Svar

Se bare her https://github.com/arduino/Arduino/wiki/Build-Process for at forstå processen.

Faktisk er Arduino-koden ikke “C eller C ++ “ved 100%. Du kan ikke kompilere direkte, da nogle oplysninger mangler. Det er derfor, når du “kompilerer” med IDE, kopierer det filerne i en temp-mappe, tilføjer nogle linjer i starten af disse filer og kalder derefter den grundlæggende og velkendte avr -gcc. Hvis du har en dedikeret server, skal du bare søge efter avr-gcc-pakken i henhold til operativsystemet. F.eks. til Debian: https://packages.debian.org/stretch/gcc-avr

Så eller sender du direkte koden, som avr-gcc venter på, eller du anvender på koden de samme ændringer, som IDE foretager, før koden sendes til GCC.

Håber denne hjælp

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *