BSH PMM: чтение модели и экспорт
Реальный сценарий: у вас плата с МК R5F2136CA, вы считали прошивку, и хотите сохранить её как S19-файл с именем по строке модели из флеша.
Подготовка
- Выберите таргет
R5F2136CA (R8C/36A)в MultiProg. - Подключитесь к плате и нажмите Read для чтения прошивки в буфер.
- Откройте Script Console, выберите
bsh_pmmиз Examples, нажмите Run.
Что делает скрипт
- Проверяет, что выбранный таргет поддерживается (сейчас —
R5F2136CA). - Сканирует регионы памяти и находит тот, что содержит адрес
0xF650. - Читает 13 байт по адресу
0xF650— здесь хранится строка модели (напримерSKS40E02RU/05). - Проверяет, что байты — печатный ASCII.
- Заменяет
/на_в имени модели (для корректного имени файла). - Открывает диалог сохранения с предложенным именем:
SKS40E02RU_05_R5F2136CA.s19. - Экспортирует регион 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 в скрипте с именем таргета, адресом модели, длиной строки
и коротким именем МК.