Перейти к основному содержимому

BSH PMM: чтение модели и экспорт

Реальный сценарий: у вас плата с МК R5F2136CA, вы считали прошивку, и хотите сохранить её как S19-файл с именем по строке модели из флеша.

Подготовка

  1. Выберите таргет R5F2136CA (R8C/36A) в MultiProg.
  2. Подключитесь к плате и нажмите Read для чтения прошивки в буфер.
  3. Откройте Script Console, выберите bsh_pmm из Examples, нажмите Run.

Что делает скрипт

  1. Проверяет, что выбранный таргет поддерживается (сейчас — R5F2136CA).
  2. Сканирует регионы памяти и находит тот, что содержит адрес 0xF650.
  3. Читает 13 байт по адресу 0xF650 — здесь хранится строка модели (например SKS40E02RU/05).
  4. Проверяет, что байты — печатный ASCII.
  5. Заменяет / на _ в имени модели (для корректного имени файла).
  6. Открывает диалог сохранения с предложенным именем: SKS40E02RU_05_R5F2136CA.s19.
  7. Экспортирует регион Flash как Motorola S19.

Ключевые функции API

-- Получить имя выбранного таргета
local cfg = mp.config.get() -- cfg.target = "R5F2136CA (R8C/36A)"

-- Информация о регионе
local info = mp.memory.get_region_info("Flash") -- {start_address=0x4000, size=...}

-- Чтение 13 байт по абсолютному адресу МК 0xF650
local bytes = mp.memory.read_at("Flash", 0xF650, 13)

-- Конвертация в строку, проверка ASCII
local model = mp.utils.bytes_to_string(bytes) -- "SKS40E02RU/05"
local ok = mp.utils.is_ascii(bytes) -- true

-- Диалог сохранения с предложенным именем
local path = mp.ui.save_file_dialog("Export", "SKS40E02RU_05_R5F2136CA.s19", "Motorola S19 (*.s19)")

-- Экспорт региона в файл
mp.memory.export_region("Flash", path)

Чтобы добавить поддержку другого МК, добавьте запись в таблицу SUPPORTED в скрипте с именем таргета, адресом модели, длиной строки и коротким именем МК.