Интерфейс MultiProg
Элементы интерфейса

menu– основное меню программы.actions toolbar– самые используемые действия, дублируют меню.additional actions– действия применимые к конкретному программатору или контроллеру. Меняются в зависимости от выбранного контроллера-программатора.programmer & target info– короткая выдержка о подключенном программаторе и контроллере.hex buffer– визуализация всех сегментов памяти контроллера в виде hex буфера.log– окошко логирования.memory/address bar– показывает имя выбранного в hex буфере сегмента памяти и выделенный адрес.
Базовые действия по программированию
connect– установка соединения с программатором и контроллером.read– чтение каждого сегмента памяти в соответствии с картой памяти, сохранение в буфер дампа каждого сегмента.write– запись каждого сегмента памяти из буфера без предварительного массового стирания.verify– сравнение каждого сегмента памяти на соответствие содержимому буфера.erase– массовое стирание каждого сегмента из буфера, если не предусмотрено иного механизма стирания производителем контроллера.
Горячие клавиши
| Сочетание | Действие |
|---|---|
Ctrl+T | Поиск таргета |
Ctrl+H | История выбранных таргетов |
Ctrl+U | Избранное |
Ctrl+I | Открыть Connection image |
Ctrl+M | Режим сравнения HEX-буферов |
Ctrl+F | Context-aware поиск: по логу, если фокус в логе; иначе — по hex-буферу |
Ctrl+G | Перейти к адресу в hex-буфере |
Ctrl+B | Select Range — выбор диапазона hex-буфера |
Ctrl+0 | VGBN — Select Zero Block (для RL78 / NEC swap-zero) |
Ctrl+L | Открыть Script Console |
Быстрый старт
Обычный порядок действий:
-
Откройте
Targetв меню или в actions toolbar. -
Выберите программатор и контроллер, нажмите ОК.

-
Убедитесь, что вы изучили руководство по настройке-установке программатора. Например руководство по USBDM.
-
Посмотрите в меню
Info->Connection Image, возможно для вашего контроллера есть картинка подключения. -
Подключите программатор к контроллеру и нажмите
Connect. -
После успешного (SUCCESS) соединения все действия (
Read,Write,Erase,Verify) станут активными. -
Поздравляю, вы разобрались 🚀
Hex буфер и memory/address bar
Hex буфер является зеркальным представлением памяти контроллера внутри программы.
В hex буфере может быть один или несколько табов с сегментами памяти. Переключение осуществляется нажатием на таб с названием сегмента.
Быстрая навигация
При нажатии на поле адреса можно быстро перейти по заданному смещению.

Копирование строки в hex/text
При нажатии правой кнопкой мышки можно определить формат копирования.

Определение сегмента и адреса по memory/address bar
Почему на этом видео на ячейке 0x00-0x01 адрес всегда 0x00?
У данного контроллера (mc56f) 2 байта на 1 ячейку памяти.
Редактирование буфера (Edit / Fill)

Правой кнопкой по hex-буферу — контекстное меню Edit / Fill:
- Undo / Redo — полная история правок буфера, также доступна из меню редактирования.
- Fill — заливка диапазона константным байтом или шаблоном; диалог проверяет hex на лету и показывает текущий адрес.
- Изменённые байты подсвечиваются, чтобы видеть все правки до сохранения.
- При входе в режим редактирования буфер автоматически бэкапится.

Select Range (Ctrl+B)
Select Range (Ctrl+B) — выбор фрагмента hex-буфера по offset
(стартовый адрес + длина). Удобно для частичных сохранений
и подсчёта контрольной суммы по диапазону.
Сравнение HEX (Ctrl+M)
Открывает диалог HEX Compare с двумя просмотрщиками рядом:
подсветка различий, синхронная прокрутка, навигация по различиям
вперёд/назад (циклически, с учётом вкладок и регионов).
Источники: текущий буфер или импортированный файл (binary / S19).
Пока Compare открыт, основной буфер заблокирован от редактирования.
Работа с файлами прошивок
Меню File содержит 6 пунктов (Open / Open Current Region /
Import / Save / Save Current Region / Export).
Если у таргета несколько регионов (multi-region) вам будет предложено импортировать или загрузить один регион.

В меню File шесть пунктов:
- Open — умное открытие. Если у таргета один регион — файл загружается сразу в него. Если несколько — появляется диалог: All Regions (Import) / Current Region Only (Open) / Cancel.
- Open Current Region — загружает файл прошивки только в текущую активную вкладку (без диалога).
- Import All Regions — за один раз загружает все регионы из выбранного файла.
- Save — умное сохранение. Один регион: сохраняет напрямую. Несколько: диалог All Regions (Export) / Current Region Only (Save) / Cancel.
- Save Current Region — сохраняет только текущий активный регион (без диалога).
- Export All Regions — сохраняет все регионы в один файл.
Кнопки тулбара Open и Save вызывают умные варианты
(то же, что File > Open / File > Save).
Поддерживаемые расширения: .hex, .s19, .s28, .s37, .srec,
.mot, .sx, .s2, .s3, .bin. Формат определяется расширением.
Для multi-region таргета лучше использовать Import / Export
в формате S19 (aka .mot, .srec) — адреса всех регионов
сохраняются в одном файле.
Отличие Import/Export от Save/Options
Сегменты (регионы, разделы) в данном случае разделы памяти микроконтроллера (см memory map), не все контроллеры имеют несколько сегментов памяти.
-
Exportв форматеs19, добавляет каждый сегмент в формате srec. -
Exportв форматеbin, начиная с0x00до начального адреса первого сегмента памяти заполняет файл0xFF. Далее добавляет в файл первый сегмент, далее добавляет0xFFразмером до начала следующего сегмента, далее добавляет следующий сегмент и так пока не загрузит весь буфер.
Поэтому, Export в формате bin без необходимости не рекомендуется, так как файл прошивки может получится очень большим.
Importв форматеs19, разбирает файл srec, извлекает и загружает в буфер каждый сегмент.Importв форматеbin, отсчитывает начальное смещение по адресу первого сегмента памяти, извлекает из файла данные с (начальное смещение) и размером (размер сегмента) и так по очереди каждый сегмент в буфере.Save- в форматеbinпросто сохраняет сегмент как есть, где нулевое смещение = начало сегмента. В s19 с адресацией.Open- в форматеbinзагружает выбранный сегмент памяти с нулевого смещения т.е. как есть в файле. В s19 с адресацией.
Я сохранил считанную USBDM прошивку DSC(MC56f) и она размером больше чем должна быть
У данного контроллера (mc56f - DSC) 2 байта на 1 ячейку памяти.
Поэтому если адресов 0x0-0x7FFF байт вдвое больше.
Темы оформления
Доступны четыре встроенные темы — Light, Dark, Telegram,
Night — переключение на лету через Settings > Theme.
- Редактор пользовательских тем — настройте цвета всего интерфейса, сохраните свою тему.
- Hex Buffer Colors editor — отдельный редактор цветов hex-буфера (фон, изменённые байты, mismatch, выделение) с мини-превью и live-предпросмотром темы.
- Заголовок окна (DWM), иконки, hex-просмотрщик, логгер, диалоги, скроллбары и вкладки корректно отрисовываются во всех темах.
Checksum Settings
Settings > Checksum Settings открывает новый профильный диалог
контрольных сумм:
- Профили — выберите из набора CRC-алгоритмов или создайте свой.
- Полный набор пресетов с
crccalc.com, включая 16 новых алгоритмов в 2.3.0;KERMITпереименован вCCITT. - Пользовательские калькуляторы на Lua — см. Lua-скрипты.
- Активная контрольная сумма выводится в Checksum info panel в левом сайдбаре (с динамическим размером) и в статус-баре.
Ctrl+0— быстрый пересчёт RL78 / NEC-суммы.
Mismatch navigation
После операции verify с несовпадениями над hex-видом появляется
панель навигации по различиям. По ней можно прыгать вперёд / назад
по mismatch'ам циклически, с учётом вкладок и регионов. Панель
автоматически прячется при изменении буфера, write, erase и правках.
Избранное и история
Ctrl+T— поиск таргета.Ctrl+H— история выбранных таргетов.Ctrl+U— избранное. Добавляйте таргеты звездой; колонка Notes позволяет привязать к каждому запись в свободной форме.- При загрузке устаревшие записи (таргеты, которых больше нет в базе) автоматически чистятся.
Lua-скрипты
С 2.3.0 в MultiProg встроен Lua-скриптовый движок (Lua 5.5.1)
и Script Console.
- Script Console — отдельное окно с редактором кода, подсветкой синтаксиса, автодополнением, отладчиком (точки останова, пошаговое выполнение) и интерактивной консолью REPL.
- Полный API — около 235 функций в 12 модулях (
mpядро,mp.backend,mp.config,mp.memory,mp.file,mp.checksum,mp.targets,mp.target_builder,mp.log,mp.ui,mp.utils,mp.app). - Пользовательские чексум-скрипты — Lua-скрипты с маркером
-- @checksum-scriptработают как калькулятор контрольных сумм, результат выводится в статус-бар. - Готовые примеры —
scripts/examples/:batch_flash.lua,mass_production.lua,read_and_verify.lua,firmware_analysis.lua,hex_patch.lua,target_search.lua,create_target.lua,create_tgsn_target.lua,renesas_nec_checksum.lua,stm32_g0_g4_export_mot.lua,stm32f7_option_bytes_stvp_convert.luaи другие. - Watchdog — зависший скрипт автоматически останавливается через 10 минут.
AI Agent MCP (preview)
Подробно — диалог настроек, подключение MCP-клиентов и безопасность —
на отдельной странице AI-агент.
Settings > AI Agent Integration включает стандартный MCP-сервер
MultiProg для управления из внешних AI-агентов (Claude, Cursor и др.):
- Аутентификация по токену (
agent_tokenв%APPDATA%/KuragaTech/MultiProg/). - MCP-клиент видит инструменты MultiProg и вызывает операции через Model Context Protocol.
- Кнопка «Copy starter prompt for external agent» — копирует готовый prompt с описанием подключения и API для внешнего агента.
Settings - меню настроек
-
License — информация о вашей лицензии и активация.
-
Theme — переключение Light / Dark / Telegram / Night, редактор пользовательских тем, редактор цветов hex-буфера.
-
Checksum Settings — профили контрольных сумм, выбор CRC-алгоритма (см. Checksum Settings выше).
-
AI Agent Integration — вкл./выкл. MCP-сервера, просмотр и регенерация agent-токена.
-
Debug mode — runtime-флаг расширенного логирования операций (метки
[read-diag]/[trim-diag]в логе) без перезапуска приложения. -
Download log — сохраняет лог текущей сессии по указанному пути, может пригодиться.
-
Reset default config — удаляет настройки и восстанавливает default.
-
Check updates — проверка и установка обновлений.
Info->Connection image
Connection image (Ctrl+I или Info > Connection Image) показывает
схему подключения программатора к целевому МК.
В 2.3.0 схема автогенерируется из JSON-описания пинов целевого устройства:
- Поддерживаемые корпуса: 4-сторонние QFP / LQFP / TQFP / QFN /
PQFP / PLCC, 2-сторонние SOIC / SSOP / LSSOP / TSSOP / DIP,
спец. BGA / Connector1Row / Connector2Row / AbstractTable;
прямоугольные раскладки (например, PQFP 14×20 мм для M16C).
Алиасы в JSON:
HWQFN/HVQFN→QFN,LFQFP→LQFP,PSDIP→DIP. - Визуальный редактор пиноута (
PinoutEditorDialog) с превью — редактирование назначения пинов прямо в GUI. - Таблица подключения программатор↔таргет (
AbstractTable) — альтернативное табличное представление сопоставления выводов. - Поворот корпуса — для ориентации схемы под физическое положение чипа на плате.
- NC-выводы — визуальные ориентиры для непрограммируемых пинов корпуса (пин обозначен на корпусе, но не идёт к программатору).
- Pinout Export / Import через configurator — выгрузка и импорт пиноута.
- Свои схемы: можно создать диаграмму для нового чипа, отредактировав JSON-описание выводов.
Покрытие в 2.3.0: M16C (35 таргетов / 68 диаграмм), R8C (183 / 263), RL78 (139 устройств в 8 семействах), NEC 78K0 / Kx1+, M32C / R32C, ESP, TMPM370 / TMPM470, HART, DSC, HCS08 / HCS12.
Пошаговая инструкция по созданию своей Connection image
(JSON-формат, NC-пины, имена пинов программатора, Pinout Editor,
Lua mp.target_builder) — на странице
Своя Connection image.
Help-about (версия)
Версию, время сборки и hash программы можно посмотреть в
menu->Help->About.
Это может пригодиться при обращении в поддержку