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