Выражения и память: evaluate, memory, symbol
Значение выражения нужного типа; байты SRAM/Flash по адресу символа.
с 0.3.0
Методы
Изменения API 3 (0.5.0)
await не нужен. memory ограничена окнами SRAM и Flash; неполный ответ — ошибка.
Правильно
Снимок объекта байтами до воздействия и восстановление после.
version = t.evaluate("app_info.version", as_type=str)
state = t.symbol("app_state")
snapshot = t.memory(state["address"], state["size"])
t.call("app_step", timeout=2) # changes app_state
t.memory(state["address"], snapshot)Не рекомендуется
memory по адресу периферии отклоняется: это не обход MMIO. Вызов функции внутри evaluate отклоняется — используйте call.
t.memory(0x40020014, 4) # peripheral window: refused
t.evaluate("crc32(buffer, 16)") # hidden call: refusedФрагменты показывают отклонённые или нежелательные приёмы, а не рабочий рецепт.
Фрагменты для тела сценария; символы прошивки условные.