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