Существует ли компилятор с открытым исходным кодом для кодов Arduino Sketch?
Я работаю над веб-приложением для программирования некоторых устройств nodeMCU, которые были прошиты библиотекой arduinoOTA.
http://esp8266.github.io/Arduino/versions/2.0 .0/doc/ota_updates/ota_updates.html
Я попробовал этот пример, и OTA-загрузка двоичного файла, скомпилированного из Arduino IDE, работает.
Допустим, мое веб-приложение позволит пользователю писать код в Sketch. Существует ли какой-либо компилятор с открытым исходным кодом на стороне сервера или на стороне клиента, который может скомпилировать код Sketch в bin-файл?
@Ho Chung Law, 👍-1
Обсуждение3 ответа
Arduino IDE запускает внешние инструменты для создания шестнадцатеричного или бинарного файла. Сначала файлы ino проекта обрабатываются компоновщиком arduino в файл cpp. Затем сборщик arduino вызывает набор инструментов архитектуры MCU — компилятор и компоновщик. Например, инструменты AVR для 328p или 2560; набор инструментов ARM от SAMD; инструменты xtensa для чипсов Espressif.
Новым является интерфейс командной строки Arduino, ориентированный на использование Arduino с командной строкой.
Конструктор Arduino, интерфейс командной строки Arduino и ядро Arduino esp8266 имеют открытый исходный код. Инструменты Extensa и Espressif SDK не имеют открытого исходного кода, но бесплатны.
Попробуйте PlatformIO: https://platformio.org
Открытый исходный код и кроссплатформенность.
Отличный ответ на другой вопрос :), @Mikael Patel
Просто посмотрите здесь https://github.com/arduino/Arduino/wiki/Build-Process чтобы понять процесс.
На самом деле код Arduino не является «C или C++» на 100%. Вы не можете скомпилировать напрямую, так как некоторая информация отсутствует. Вот почему, когда вы «компилируете» с помощью IDE, она копирует файлы во временную папку, добавляет несколько строк в начало этих файлов, а затем вызывает базовый и хорошо известный avr-gcc. Если у вас есть выделенный сервер, вам просто нужно найти пакет avr-gcc в соответствии с ОС. Например, для Debian: https://packages.debian.org/stretch/gcc-avr
Затем либо вы напрямую отправляете код, которого ожидает avr-gcc, либо применяете к коду те же изменения, которые вносит среда IDE перед отправкой кода в GCC.
Надеюсь, это поможет
- Использование Arduino в качестве автономного компилятора
- Как запрограммировать nodeMCU через OTA с помощью GPRS?
- Компиляция во время выполнения
- Есть ли какой-нибудь способ загрузить скетч с ардуино?
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- NodeMCU - Vin контакт как выход 5V?
- Как заставить 5-вольтовое реле работать с NodeMCU
- ESP8266 не подключается к Wi-Fi
включите подробный вывод консоли в Arduino IDE, и вы увидите все выполняемые команды для компиляции и компоновки. сборщик является внешним и имеет открытый исходный код, @Juraj
см., например, Sloeber, плагин Arduino Eclipse, как он использует набор инструментов Arduino и основные пакеты без Arduino IDE., @Juraj
@Juraj Пожалуйста, напишите это как ответ или дайте URL-адрес учебного пособия и т. д., которое уже существует в Интернете, если вы его знаете., @MichaelT
Используется AVC GCC с открытым исходным кодом https://gcc.gnu.org/., @CrossRoads