Существует ли компилятор с открытым исходным кодом для кодов 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-файл?

, 👍-1

Обсуждение

включите подробный вывод консоли в Arduino IDE, и вы увидите все выполняемые команды для компиляции и компоновки. сборщик является внешним и имеет открытый исходный код, @Juraj

см., например, Sloeber, плагин Arduino Eclipse, как он использует набор инструментов Arduino и основные пакеты без Arduino IDE., @Juraj

@Juraj Пожалуйста, напишите это как ответ или дайте URL-адрес учебного пособия и т. д., которое уже существует в Интернете, если вы его знаете., @MichaelT

Используется AVC GCC с открытым исходным кодом https://gcc.gnu.org/., @CrossRoads


3 ответа


0

Arduino IDE запускает внешние инструменты для создания шестнадцатеричного или бинарного файла. Сначала файлы ino проекта обрабатываются компоновщиком arduino в файл cpp. Затем сборщик arduino вызывает набор инструментов архитектуры MCU — компилятор и компоновщик. Например, инструменты AVR для 328p или 2560; набор инструментов ARM от SAMD; инструменты xtensa для чипсов Espressif.

Новым является интерфейс командной строки Arduino, ориентированный на использование Arduino с командной строкой.

Конструктор Arduino, интерфейс командной строки Arduino и ядро Arduino esp8266 имеют открытый исходный код. Инструменты Extensa и Espressif SDK не имеют открытого исходного кода, но бесплатны.

,

0

Попробуйте PlatformIO: https://platformio.org

Открытый исходный код и кроссплатформенность.

,

Отличный ответ на другой вопрос :), @Mikael Patel


1

Просто посмотрите здесь 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.

Надеюсь, это поможет

,