Add shared waveform processing, generation and firmware image support
This commit is contained in:
31
python/firmware_image/README.md
Normal file
31
python/firmware_image/README.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Общие образы прошивки
|
||||
|
||||
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)
|
||||
```
|
||||
Reference in New Issue
Block a user