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.
Подключение
- Добавить
src/rs485_boot.cи порт нужного МК в проект. - Скопировать
rs485_boot_port_config.template.hв include-каталог проекта какrs485_boot_port_config.hи проверить UART, DE, адрес приложения и Flash. - Вызвать
rs485_boot_hw_init(), затемrs485_boot_init()с callbacks изrs485_boot_hw_make_port(). - В основном цикле читать
rs485_boot_hw_get_byte()и передавать байты ядру.
Порт STM32F103 рассчитан на стандартную периферию STM32F10x. Порт G474VET
использует CMSIS STM32G4 (stm32g474xx.h) и 64-битное программирование Flash.