Changelog
2.3.5
Выпущено 17-го июня 2026 года
Добавлено
Обновление ESP-бэкенда (USB-UART)
Обновление ESP-бэкенда:
- Выбор COM-порта (
Auto/ конкретный порт / обновление списка) и выбор скорости (baud) — раньше скорость была фиксированной, теперь её можно выбрать из готового списка115200 / 230400 / 460800 / 921600 / 2000000или задать свою через пункт «Custom baud…»; по умолчанию460800. - Кнопка Cancel для длительных операций.
- Тестер пинов USB-UART (отдельный диалог): переключение DTR/RTS, проверка TX/RX по петле (loopback), монитор RX — помогает поднять нестандартные платы и проверить распайку перед прошивкой.
- Побайтовое сравнение в Verify: добавлено побайтовое сравнение — после блочной проверки по MD5 при расхождении показываются конкретные различающиеся байты.
- Конфигурация ESP-таргетов: добавлена возможность настраивать ESP — можно создать собственный ESP-таргет в Target Configurator. При несовпадении выбранного и определённого размера флеша показывается предупреждение — не блокирующее операцию.
Главное — скорость чтения. За счёт обновлённых RAM-loader'ов и работы на повышенной скорости чтение ускорилось в разы на всех семействах. Например, ESP32-S3 16 МБ: с ~24 мин 31 с (старый путь на 115200) до ~2 мин 46 с (около 8.9×); ESP32-C3 4 МБ — около 1450 кбит/с на 2000000 (около 9.7× к прежнему результату). Скорость 2000000 стабильна не на всех платах/адаптерах — безопасная рекомендация 921600 (ESP32-C6 устойчиво работает и на 2 Мбод).
Посегментный API скриптинга (Lua) — пока только для ESP-бэкенда
Для случаев, когда прошивка разбита на сегменты (например, по разделам из partitions.csv) и нужно обновить только часть, а не весь регион. Функции mp.backend.read_segment / verify_segment / write_segment / erase_segment(addr, size) работают с отдельным выровненным диапазоном адресов. Пока реализовано только в ESP-бэкенде; доступно как из Lua-скриптов, так и через IPC для AI-ассистента. Готовые примеры лежат в scripts/examples/esp_segment_*.lua (начните с esp_segment_example.lua); правила выравнивания описаны в справочнике по скриптингу.
Option Bytes STM32 как адресуемые регионы (ST-Link)
Главное — корректная проверка Option Bytes при верификации после записи: теперь каждый OB-байт проверяется так, как нужно — изменяемые байты сверяются, а служебные (комплементарные) байты, которыми управляет железо, из проверки исключены. Для этого для семейств STM32 F0, F1, F2, F3, F4 Option Bytes представлены как адресуемые регионы памяти на штатных адресах — их видно и можно редактировать в буфере. Дампы OB из версий MultiProg 2.3.0–2.3.4 при загрузке автоматически переносятся на новые адреса, поэтому такие файлы совпадают по адресам и править их не нужно. Адресация OB при этом формально совместима с J-Link. Для двухбанкового F4 регистры OPTCR и OPTCR1 объединены в один регион.
Интеграция AI-ассистента (agent IPC)
Добавлен handshake ping / status для проверки связи и состояния. Сама интеграция (файловый мост, управление MultiProg через тот же Lua API, что и Script Console) появилась раньше; включается через Settings → AI Agent Integration.
TGSN: принудительное стирание R8C по ID «ALeRASE» и защита от Protect
Добавлена поддержка функции Forced Erase для R8C. Если МК закрыт по ID-коду и обычный доступ невозможен (ID неизвестен), можно прислать зарезервированный ID ALeRASE: МК сам полностью сотрёт user ROM и станет доступен для работы. Данные при этом теряются — это ожидаемо, это «разблокировка через стирание».
ALeRASE — это 7 байт ASCII (регистр важен: A L e R A S E):
41 4C 65 52 41 53 45
Как выполнить принудительное стирание:
1. Ввести ID "ALeRASE" в ID-селекторе
2. Сделать повторный Connect — на МК без ROM code protect он сотрётся и разблокируется
- Работает только на поколении R8C/3xC (например, R8C/32C, 33C, 35C, 36A/36C/36M/36T-A, 38C, 38W·X·Y·Z); у старых R8C/1x и R8C/2x такой функции нет.
- Защита от случайного стирания: при Special Read, если восстановленный из МК ID оказывается
ALeRASE, MultiProg откажет и не подставит его обратно — операция чтения не сотрёт МК. Стирание запускается только осознанно — по введённому пользователем ID. ALeRASEпомогает не всегда. Forced erase зависит от ROM code protect (битыROMCR/ROMCP1регистра OFS). Если ROM code protect включён, а записанный ID не равенALeRASE, МК откажет в стирании, и MultiProg сообщит «ALeRASE refused: ROM code protect enabled» с сырыми байтами статуса — такой МК нельзя стереть по serial.Protect— это не то же, что ROM code protect. Зарезервированное ID-словоProtectполностью отключает serial/OCD-связь (МК «молчит»); кроме того, TGSN всегда отклоняетProtectкак присылаемый ID. ROM code protect — это пара битов OFS: МК продолжает отвечать, но блокирует стирание.
Все механизмы защиты R8C и какие состояния восстановимы — см. Виды защит R8C.
Требуется прошивка TGSN 3.3.7 или новее.
Изменено
- Переподключение ESP переиспользует активную сессию вместо закрытия и повторного открытия порта — устраняет периодические зависания при открытии на чипах с нативным USB (S2/S3).
- Усилена проверка обновлений при старте и добавлено уведомление о доступном обновлении.
Исправлено
- Первое подключение ESP иногда завершалось ошибкой «Can't read target id» сразу после синхронизации — чтение chip-id теперь повторяется.
2.3.4
Выпущено 2-го июня 2026 года
Изменено
Чтение всех таргетов STM32/FM3/FM4 с новым ram-агентом (ST-Link)
Все МК семейства STM32/FM3/FM4 переведены на новый агент чтения с двойным контролем CRC.
Options Bytes (OB) STM32 (ST-Link)
Теперь если OB = 0xFF (пустой буфер), они не записываются и соотвественно не проходят проверку после записи. Все регионы OB совместимы по адресам с файлами J-Link.
Проверка Data-Flash FM3-FM4
Таргеты FM3-FM4 теперь выдают предупреждение в лог о нестабильном поведение D-Flash (Work-Flash).
Если при чтении вы получили предупреждение в логе: [WARN] D-Flash unstable read at ... это 100%-ая гарантия битой прошивки (верн ее сказать зависания записи D-Flash).
Также добавлена проверка сигнатуры (jep106) для MB9BF168R/S6E2HE6G, с предупреждение в случае ошибки.
S6E2HE6G - добавлен ram-агентом записи (ram-loader)
Скорость записи теперь как у MB9BF168R.
Исправлено
Пиноуты HCS08
Исправлены недочеты в пиноуте некоторых HCS08.
2.3.3
Выпущено 16-го мая 2026 года
Добавлено
TGSN Installer — обновлённый процесс установки
- Установка только из MultiProg — без настройки WiFi на TGSN. Интернет нужен только компьютеру с MultiProg; на самом TGSN ни WiFi, ни авторизация для установки больше не требуются. Двухстадийный процесс по умолчанию. Удобно на объектах со слабым WiFi. Сам установщик сфокусирован только на установке; если WiFi на устройстве всё-таки нужен (например, для последующих обновлений через меню Update прямо с TGSN) — это делается отдельно через
TGSN → TGSN Configure WiFi. - Статус-строка с текущим состоянием. На странице программирования всегда видна версия прошивки, git-хэш, текущая стадия и подэтап. По завершении — «Complete» / «Done» или «Failed: <причина>».
Добавлены новые скрип ты
renesas_nec_targets.lua— выводит список таргетов NEC 78K0/xx2 с размером памяти. Был написан для своей задачи; оставлен в комплекте как пример обращения к базе таргетов из Lua.- Lua-скрипт очистки статистики на платах с FM4 (Cypress/Spansion MB9BF168R или S6E2HE6G) — добавлен как пример. Очищает Work Flash с
0x200C4000до конца региона и сохраняет служебный маркер по адресу0x200C5FFE(записывает0xA5, если пусто, иначе оставляет байт как есть). Полный цикл Connect/Read/Erase/Write/Verify, ограничен поддерживаемыми таргетами.
Утилиты программаторов (драйверы и прошивки в комплекте)
- Драйверы и апдейтеры прошивки теперь в составе установщика MultiProg.
- ST-Link:
STSW-LINK009(USB-драйверы) +STSW-LINK007 v3.14.5(апдейтер прошивки; именно v3.14.5 — потому что эта версия поддерживает и неоригинальные ST-Link). - USBDM:
USBDM_Drivers_4_12_3_Win_x64.zip(драйверы) + урезанная сборкаFirmwareChanger.exe(~9 МБ) для перепрошивки JS16/JB16 + бутлоадеры +FlashImages/DeviceData. Из 183-мегабайтного оригинального MSI взято только то, что нужно для перепрошивки JS16/JMxx.
- ST-Link:
- Распаковываются в профиль пользователя:
%USERPROFILE%/KuragaTech/MultiProg/programmer_utils/— обычному пользователю не нужны права администратора. - Из окна ошибки можно сразу открыть нужную папку: при типовых ошибках ST-Link/USBDM («firmware too old», «Programmer not found», «libusb error», «Unsupported USBDM programmer» и т.п.) в диалоге появляется кнопка «Open ST-Link/USBDM Utilities» — открывает соответствующую папку в Проводнике.
- Если папка пустая — показывается понятное «missing»-сообщение с подсказкой.