Files
templates/python/firmware_image/README.md

32 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Общие образы прошивки
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)
```