Estoy trabajando en una aplicación web para programar algunos dispositivos nodeMCU que se actualizaron con la biblioteca arduinoOTA.
http://esp8266.github.io/Arduino/versions/2.0.0/doc/ota_updates/ota_updates.html
Probé el ejemplo y la carga OTA del archivo binario compilado desde Arduino IDE funciona.
Digamos que mi aplicación web permitirá al usuario codificar en Sketch, ¿hay algún compilador del lado del servidor o del cliente de código abierto que pueda compilar el código de Sketch en el archivo bin?
Comentarios
- active la salida de consola detallada en Arduino IDE y verá todos los comandos ejecutados para compilar y vincular. el constructor es externo y es de código abierto
- vea, por ejemplo, Sloeber, el complemento Arduino Eclipse, cómo usa la cadena de herramientas Arduino y los paquetes centrales sin Arduino IDE
- @Juraj Por favor, escriba esto como respuesta o proporcione una URL para un tutorial, etc.que ya existe en la web, si conoce alguno.
- Se utiliza AVC GCC y es de código abierto gcc.gnu.org
Responder
Arduino IDE ejecuta herramientas externas para crear el archivo hexadecimal o bin. Primero, arduino builder procesa los archivos ino de un proyecto en un archivo cpp. Luego, el constructor de arduino invoca la cadena de herramientas de la arquitectura MCU: compilador y enlazador. Por ejemplo, herramientas AVR para 328p o 2560; Cadena de herramientas ARM de SAMD; herramientas xtensa para chips Espressif.
Lo nuevo es Arduino CLI , que se centra en el uso de Arduino con la línea de comandos.
El constructor de Arduino, la CLI de Arduino y el núcleo de Arduino esp8266 son de código abierto. Las herramientas Extensa y Espressif SDK no son de código abierto, pero son gratis.
Respuesta
Pruebe PlatformIO: https://platformio.org
Fuente abierta y multiplataforma.
Comentarios
- Excelente respuesta a alguna otra pregunta 🙂
Respuesta
Solo eche un vistazo aquí https://github.com/arduino/Arduino/wiki/Build-Process para comprender el proceso.
De hecho, el código Arduino no es «C o C ++ «al 100%. No puede compilar directamente ya que faltan algunas informaciones. Es por eso que cuando «compila» con el IDE, copia los archivos en una carpeta temporal, agrega algunas líneas al comienzo de estos archivos y luego llama al básico y conocido avr -gcc. Si tienes un servidor dedicado, solo tienes que buscar el paquete avr-gcc según el sistema operativo. Por ejemplo, para Debian: https://packages.debian.org/stretch/gcc-avr
Luego, o envía directamente el código que avr-gcc está esperando, o aplica en el código los mismos cambios que está haciendo el IDE antes de enviar el código a GCC.
Espero que esto ayude