Files
templates/c/rs485-boot/README.md

1.7 KiB
Raw Blame History

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.