# RS-485 firmware boot Переносимое ядро обновления прошивки по полудуплексному RS-485. Wire-протокол совместим с SETGUI protocol v1 проекта `KONOR_ds18b20`: кадры `A5 5A`, CRC32, команды `FIRMWARE_BEGIN/DATA/END/ABORT/STATUS` (`0x0B..0x0F`). Ядро не обращается к регистрам МК. Проект передаёт ему принятые байты через `rs485_boot_feed()` и реализует callbacks Flash/передачи из `rs485_boot_port_t`. Готовые bare-metal порты находятся в `ports/stm32f103` и `ports/stm32g474vet`. Важно: линии A/B должны иметь терминацию и fail-safe bias. Порт держит DE активным до флага физического завершения передачи TC, затем возвращается в RX. ## Подключение 1. Добавить `src/rs485_boot.c` и порт нужного МК в проект. 2. Скопировать `rs485_boot_port_config.template.h` в include-каталог проекта как `rs485_boot_port_config.h` и проверить UART, DE, адрес приложения и Flash. 3. Вызвать `rs485_boot_hw_init()`, затем `rs485_boot_init()` с callbacks из `rs485_boot_hw_make_port()`. 4. В основном цикле читать `rs485_boot_hw_get_byte()` и передавать байты ядру. Порт STM32F103 рассчитан на стандартную периферию STM32F10x. Порт G474VET использует CMSIS STM32G4 (`stm32g474xx.h`) и 64-битное программирование Flash.