Existe um compilador de código aberto para códigos do Arduino Sketch?

Estou trabalhando em um aplicativo da web para programar alguns dispositivos nodeMCU que foram atualizados com a biblioteca arduinoOTA.

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

Eu tentei o exemplo e o upload OTA do arquivo binário compilado do IDE do Arduino funciona.

Digamos que meu aplicativo da web permita que o usuário codifique no Sketch. Existe algum compilador de código aberto do lado do servidor ou do lado do cliente que pode compilar o código do Sketch no arquivo bin?

Comentários

  • ative a saída detalhada do console no Arduino IDE e você verá todos os comandos executados para compilar e vincular. o construtor é externo e é de código aberto
  • veja por exemplo Sloeber, o plugin Arduino Eclipse, como ele usa o conjunto de ferramentas Arduino e os pacotes principais sem o IDE do Arduino
  • @Juraj Por favor, escreva como uma resposta ou forneça a URL de um tutorial, etc. que já existe na web, se você souber de algum.
  • O AVC GCC é usado e é de código aberto gcc.gnu.org

Resposta

O Arduino IDE executa ferramentas externas para criar o arquivo hex ou bin. Primeiro, os arquivos ino de um projeto são processados pelo construtor arduino para o arquivo cpp. Em seguida, o construtor arduino invoca a cadeia de ferramentas da arquitetura MCU – compilador e vinculador. Por exemplo, ferramentas AVR para 328p ou 2560; Conjunto de ferramentas ARM do SAMD; Ferramentas xtensa para chips Espressif.

A novidade é a Arduino CLI , que se concentra no uso do Arduino com linha de comando.

O construtor do Arduino, o Arduino CLI e o núcleo do Arduino esp8266 são de código aberto. As ferramentas Extensa e Espressif SDK não são de código aberto, mas são gratuitos.

Resposta

Experimente PlatformIO: https://platformio.org

Código aberto e plataforma cruzada.

Comentários

  • Ótima resposta para alguma outra pergunta 🙂

Resposta

Basta dar uma olhada aqui https://github.com/arduino/Arduino/wiki/Build-Process para entender o processo.

Na verdade, o código do Arduino não é “C ou C ++ “a 100%. Você não pode compilar diretamente porque algumas informações estão faltando. É por isso que quando você “compila” com o IDE, ele copia os arquivos em uma pasta temporária, adiciona algumas linhas no início desses arquivos e então chama o avr básico e conhecido -gcc. Se você tiver um servidor dedicado, basta pesquisar o pacote avr-gcc de acordo com o sistema operacional. Por exemplo, para Debian: https://packages.debian.org/stretch/gcc-avr

Em seguida, ou você envia diretamente o código que avr-gcc está esperando, ou aplica no código as mesmas alterações que o IDE está fazendo antes de enviar o código ao GCC.

Espero que isso ajude

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *