Как прошить EFR32MG21 через Studio или Commander

Прошивка EFR32MG21 через Simplicity Studio или Simplicity Commander нужна, когда вы заливаете приложение во Flash по SWD (через WSTK/J-Link), восстанавливаете устройство после неудачной прошивки или готовите повторяемый сценарий (скрипты/производство). В большинстве случаев достаточно: подключить SWD → стереть при необходимости → прошить .hex/.s37 → проверить → reset.

Практическое правило: Studio удобнее “в один раз руками”, Commander — когда важны повторяемость, диагностика и автоматизация (CLI).

Оглавление

Когда прошивка через Studio/Commander действительно нужна

  1. Первая прошивка “чистого” чипа/платы
    Новый EFR32MG21 на кастомной плате или устройство после mass erase обычно прошивают именно по SWD: это самый прямой и предсказуемый путь.

  2. Восстановление после “кирпича”
    Если код не стартует, устройство “молчит” по интерфейсам, залили не тот образ — Commander удобен тем, что быстро выполняет цепочку erase → flash → verify → reset и показывает, где ошибка.

  3. Прошивка бутлоадера и подготовка к OTA/обновлениям
    Если вы строите обновления через Gecko Bootloader, сначала часто требуется прошить сам бутлоадер по SWD, а дальше уже использовать форматы/процедуры обновления.

  4. Автоматизация (скрипты, стенды, производство)
    Commander CLI легко встраивается в bat/sh-скрипты и делает процесс одинаковым на разных ПК и для партии устройств.

Форматы прошивок: что выбирать для EFR32MG21

Быстрый выбор формата под задачу

ФорматКогда подходитЧто важно помнить
.hexПрямая прошивка приложения во FlashОбычно самый беспроблемный вариант для SWD-прошивки
.s37Прямая прошивка приложения/бутлоадера (в зависимости от сборки)Тоже “адресный” формат; используйте тот, который выдаёт ваш проект
.binКогда у вас есть “сырой” бинарникЧасто нужно явно задавать адрес загрузки (--address)
.gblОбновление через бутлоадер (UART/OTA/и т.п.)Это **пакет обновления**, а не “просто прошивка в 0x0”

Частая ошибка: пытаться прошить .gbl “как приложение” через SWD в начало Flash. Для прямой заливки обычно используйте .hex или .s37, а .gbl применяйте в сценарии, где уже есть бутлоадер.

Базовый сценарий прошивки по SWD (Studio и Commander)

Минимальная подготовка железа

Проверьте до любых действий:

  • линии SWDIO, SWCLK, GND подключены корректно;
  • отладчик видит VTARGET/Vref (плата реально питается);
  • желательно подключён nRESET (не всегда обязателен, но помогает при проблемах запуска).

Вариант A: Simplicity Studio (GUI)

  1. Подключите WSTK/J-Link по USB и откройте Studio.
  2. В инструментах прошивки (Flash Programmer/аналог) выберите адаптер и целевую микросхему EFR32MG21.
  3. Укажите файл .hex или .s37.
  4. Рекомендуемые опции для разработки: Erase (если сомневаетесь)VerifyReset after flash.
  5. Проверьте результат: LED/UART-лог/старт отладочной сессии.

Вариант B: Simplicity Commander (CLI)

  1. Найдите подключённый отладчик:
commander adapter list
  1. Посмотрите, что цель читается (полезно для диагностики питания/SWD):
commander device info --serialno <SERIAL>
  1. При необходимости сделайте полную очистку (данные на чипе будут удалены):
commander device erase --serialno <SERIAL>
  1. Прошейте образ приложения:
commander flash firmware.hex --serialno <SERIAL>

Если у вас .bin, обычно нужен адрес (уточняйте под ваш layout):

commander flash firmware.bin --address 0x0 --serialno <SERIAL>
  1. Если нужно — отдельный reset:
commander device reset --serialno <SERIAL>

Для повторяемого “рабочего” цикла держите один сценарий: device info → (опционально) device eraseflashdevice reset → проверка поведения (UART/LED).

Частые ошибки

  • “No target voltage / cannot connect”: нет питания цели, не подключён VTARGET/Vref, нет общего GND, перепутаны SWDIO/SWCLK.
  • Прошилось, но не стартует: залит образ не под вашу плату/конфигурацию, конфликт разметки памяти (особенно при наличии бутлоадера), неверные настройки тактирования/пинов.
  • “Device locked / debug access denied”: включены механизмы защиты. Часто помогает только mass erase (с потерей прошивки и данных) — планируйте это заранее для продуктовых устройств.

FAQ

Нужен ли бутлоадер всегда?
Нет. Если не требуется OTA/обновление “в поле”, приложение можно прошивать напрямую по SWD.

Что выбрать для первого раза: Studio или Commander?
Studio — быстрее разобраться. Commander — лучше, когда важны одинаковые команды, логирование и автоматизация.

Можно ли обойтись без SWD?
Для самой первой прошивки обычно нет: нужен SWD-доступ. Без SWD можно обновляться только если заранее установлен бутлоадер и настроен механизм обновления.