Как прошить EFR32MG21 через Studio или Commander
Прошивка EFR32MG21 через Simplicity Studio или Simplicity Commander нужна, когда вы заливаете приложение во Flash по SWD (через WSTK/J-Link), восстанавливаете устройство после неудачной прошивки или готовите повторяемый сценарий (скрипты/производство). В большинстве случаев достаточно: подключить SWD → стереть при необходимости → прошить .hex/.s37 → проверить → reset.
Практическое правило: Studio удобнее “в один раз руками”, Commander — когда важны повторяемость, диагностика и автоматизация (CLI).
Оглавление
Когда прошивка через Studio/Commander действительно нужна
-
Первая прошивка “чистого” чипа/платы
Новый EFR32MG21 на кастомной плате или устройство послеmass eraseобычно прошивают именно по SWD: это самый прямой и предсказуемый путь. -
Восстановление после “кирпича”
Если код не стартует, устройство “молчит” по интерфейсам, залили не тот образ — Commander удобен тем, что быстро выполняет цепочкуerase → flash → verify → resetи показывает, где ошибка. -
Прошивка бутлоадера и подготовка к OTA/обновлениям
Если вы строите обновления через Gecko Bootloader, сначала часто требуется прошить сам бутлоадер по SWD, а дальше уже использовать форматы/процедуры обновления. -
Автоматизация (скрипты, стенды, производство)
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)
- Подключите WSTK/J-Link по USB и откройте Studio.
- В инструментах прошивки (Flash Programmer/аналог) выберите адаптер и целевую микросхему EFR32MG21.
- Укажите файл
.hexили.s37. - Рекомендуемые опции для разработки: Erase (если сомневаетесь) → Verify → Reset after flash.
- Проверьте результат: LED/UART-лог/старт отладочной сессии.
Вариант B: Simplicity Commander (CLI)
- Найдите подключённый отладчик:
commander adapter list
- Посмотрите, что цель читается (полезно для диагностики питания/SWD):
commander device info --serialno <SERIAL>
- При необходимости сделайте полную очистку (данные на чипе будут удалены):
commander device erase --serialno <SERIAL>
- Прошейте образ приложения:
commander flash firmware.hex --serialno <SERIAL>
Если у вас .bin, обычно нужен адрес (уточняйте под ваш layout):
commander flash firmware.bin --address 0x0 --serialno <SERIAL>
- Если нужно — отдельный reset:
commander device reset --serialno <SERIAL>
Для повторяемого “рабочего” цикла держите один сценарий: device info → (опционально) device erase → flash → device 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 можно обновляться только если заранее установлен бутлоадер и настроен механизм обновления.