mp.memory — 60 функций
Функции *_at принимают абсолютный MCU-адрес; смещение в буфере
вычисляется автоматически:
buffer_offset = addr - region.start_address.
-- Flash начинается с 0x4000. Чтение 4 байт по адресу 0xF650:
local bytes = mp.memory.read_at("Flash", 0xF650, 4)
-- внутри читает смещение в буфере: 0xF650 - 0x4000 = 0xB650
Навигация по регионам
| Функция | Возврат | Описание |
|---|---|---|
get_regions() | table | Массив имён регионов |
current_region() | string | Имя активного региона |
region_count() | int | Количество регионов |
select_region(idx) | void | Переключить регион по индексу (с 0) |
select_region_by_name(n) | bool | Переключить регион по имени |
get_region_info([r]) | table | {index, name, size, start_address, end_address, cell_size} — r это имя, индекс или опущен (активный) |
region_size(r) | int | Размер региона в байтах |
Редактируемость
Вкладки по умолчанию read-only, как в GUI. Записи молча возвращают
false, пока не включить writability.
| Функция | Возврат | Описание |
|---|---|---|
set_writable(r, b) | ok, err | r — имя или индекс; b — bool. Голый set_writable(b) (один bool) переключает все табы. set_writable(0) (число) → (false, "...") |
set_writable_all(b) | ok, err | Применить ко всем регионам |
is_writable([r]) | bool | r — имя, индекс или опущен (активный регион) |
Чтение — по смещению
| Функция | Возврат | Описание |
|---|---|---|
read_byte(r, off) | int | Один байт (-1 если вне диапазона) |
read_range(r, start, len) | table | Массив байт |
read_bytes(r, off, n) | table | Массив байт (alias-class с read_range) |
read_hex(r, off, n) | string | Hex-строка, например "deadbeef" |
read_string(r, off, maxLen) | string | Сырая строка (может содержать непечатное) |
read_string_until_null(r, off, maxLen?) | string | До первого NUL (по умолчанию макс 256) |
get_region_data(r) | table | Весь регион как массив байт |
get_all_data() | table | Все регионы подряд как массив байт |
Чтение — по адресу
| Функция | Возврат | Описание |
|---|---|---|
read_at(r, addr, n) | table | Массив байт начиная с MCU-адреса |
read_byte_at(r, addr) | int | Один байт по MCU-адресу |
read_string_at(r, addr, maxLen) | string | Сырая строка по MCU-адресу |
read_string_until_null_at(r, addr, maxLen?) | string | До первого NUL по абсолютному адресу (макс 256) |