# Общие образы прошивки SETGUI и климатический bridge используют один пакет и один C99-парсер `c/set-protocol/src/firmware_image.c`. Python преобразует результат C в `HexSegment`; алгоритмического fallback нет. Карта Flash, план записи, заполнение промежутков FF и стандартные CRC32/SHA256 доступны через `core`. Запуск программатора, файловый allowlist и журнал остаются в приложении. Строгая политика HEX одинакова для обоих потребителей: checksum, обязательный EOF, запрет данных после EOF, запрет любых перекрытий, проверка длины и адресов. Непрерывный образ имеет заданный предел **до** выделения его буфера. Профиль STM32F407VE сохраняется для совместимости; другой MCU передаёт свой `FlashLayout` в функции планирования. Из корня templates: ```powershell python c/set-protocol/tools/build_host.py --output python/protocan/native/setprotocol.dll python -m pip install -e ./python python -m unittest discover -s python/tests -p test_firmware_image_shared.py ``` На Linux/macOS имя результата — `libsetprotocol.so`/`libsetprotocol.dylib`. Также поддерживается явный путь `SETPROTOCOL_LIBRARY`. Старая DLL без API образов выдаёт понятную ошибку с требованием пересборки. ```python from firmware_image.core import parse_intel_hex, contiguous_image segments = parse_intel_hex(':0100000001FE\n:00000001FF') image, base = contiguous_image(':0100000001FE\n:00000001FF', maximum_size=1024) ```