База знаний · Сборка и прошивка

Движки сборки под разные платы

AVR, ESP32, российский MIK32 собираются по-разному — но для вас это всегда одна кнопка.

Скетч для Uno и скетч для ESP32 выглядят одинаково — а собираются совершенно разными инструментами: у каждого процессора свой компилятор, свои загрузчики, свои правила. В Trema IDE весь этот зоопарк спрятан под одной кнопкой: движок выбирается сам, по выбранной плате.

Почему движков несколько

Плата — это процессор, а процессоры говорят на разных машинных языках: AVR в классической Uno, ARM в UNO R4 и MIK32, Xtensa в ESP32, RP2040 в Pico. Для каждого языка нужен свой компилятор и свой способ доставки прошивки. Устанавливая пакет семейства из менеджера плат, вы на самом деле ставите его движок — потому пакеты и весят немало.

Как программа выбирает движок

По выбранной плате — и только по ней. Выбрали Uno — работает инструментарий AVR; переключились на ESP32 — тот же скетч поедет через движок Xtensa; российская ELBEAR соберётся своим родным движком, встроенным в программу. Никаких «выберите компилятор» — этот вопрос не ваш, и это принципиально.

Пакеты плат Trema IDE с указанием движка сборки: PlatformIO и Arduino BSP
Движок подписан под каждым пакетом: у Arduino AVR — PlatformIO, у ELBEAR — Arduino BSP.

Что это даёт на практике

  • Один скетч — разные платы. Написали под Uno — собрали под ELBEAR, просто сменив плату в списке: движок подставится сам (о границах совместимости — «Совместимость»).
  • Ошибки в общем стиле. Каким бы движком ни собиралось — карточки ошибок переводят вывод на русский одинаково.
  • Офлайн для установленного. Движок, однажды поставленный, работает без сети — интернет нужен только для установки новых семейств.

Самое честное доказательство того, что движки — наша забота, а не ваша: вот скетч, который одинаково соберётся и под Arduino Uno, и под российскую ELBEAR, хотя внутри его будут собирать разные движки.

// Проверка новой платы: она должна и мигать, и говорить.
// Если работает и то и другое — плата, кабель, драйвер и порт в порядке.
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600);
  Serial.println("Плата на связи");
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  Serial.println("Светодиод включён");
  delay(400);

  digitalWrite(LED_BUILTIN, LOW);
  Serial.println("Светодиод выключен");
  delay(400);
}

Вы меняете плату в верхней панели — и всё. Ни настроек компилятора, ни путей к тулчейну, ни выбора движка вручную.

Для любопытных

Хотите увидеть движок за работой — разверните полную консоль: там виден настоящий вывод компилятора, со всеми флагами и путями. Отличное чтение для тех, кто дорос до вопроса «а как оно на самом деле».

Обновлено: 19 июля 2026