Er det en åpen kildekodekompilator for Arduino Sketch-koder?

Jeg jobber med en webapp for å programmere noen nodeMCU-enheter som ble blinket med arduinoOTA-biblioteket.

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

Jeg prøvde eksemplet og OTA-opplastingen av den binære filen som ble samlet fra Arduino IDE fungerer.

La oss si at webappen min tillater brukeren å kode i Sketch, er det noen åpen kildekode-server eller kompilator på klientsiden som kan kompilere Sketch-koden i bin-filen?

  • slå på detaljert konsollutgang i Arduino IDE, og du vil se alle de utførte kommandoene for å kompilere og lenke. Bygger er ekstern og det er åpen kildekode
  • se for eksempel Sloeber, Arduino Eclipse plugin, hvordan den bruker Arduino verktøykjede og kjernepakker uten Arduino IDE
  • @Juraj Skriv dette som svar eller gi URL for en veiledning osv. som allerede eksisterer på nettet, hvis du vet om en.
  • AVC GCC brukes og er åpen kildekode gcc.gnu.org

Svar

Arduino IDE kjører eksterne verktøy for å lage hex- eller bin-filen. Først blir ino-filene til et prosjekt behandlet av arduino builder til cpp-fil. Så påkaller arduino-byggherren verktøykjeden til MCU-arkitekturen – kompilator og linker. For eksempel AVR-verktøy for 328p eller 2560; ARM verktøykjede fra SAMD; xtensa-verktøy for Espressif-sjetonger.

Nytt er Arduino CLI , som fokuserer på å bruke Arduino med kommandolinje.

Tha Arduino builder, Arduino CLI og esp8266 Arduino core er Open Source. Extensa-verktøy og Espressif SDK er ikke åpen kildekode, men er gratis.

Svar

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

Åpner kilde og krysser plattform.

Kommentarer

  • Flott svar på et annet spørsmål 🙂

Svar

Bare ta en titt her https://github.com/arduino/Arduino/wiki/Build-Process for å forstå prosessen.

Faktisk er Arduino-koden ikke «C eller C ++ «på 100%. Du kan ikke kompilere direkte fordi det mangler informasjon. Dette er grunnen til at når du «kompilerer» med IDE, kopierer den filene i en temp-mappe, legger til noen linjer i begynnelsen av disse filene og deretter kaller den grunnleggende og velkjente avr -gcc. Hvis du har en dedikert server, må du bare søke etter avr-gcc-pakken i henhold til operativsystemet. F.eks. for Debian: https://packages.debian.org/stretch/gcc-avr

Så eller du sender direkte koden avr-gcc venter på, eller du bruker på koden de samme endringene IDE gjør før du sender koden til GCC.

Håper denne hjelpen

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *