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