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

25 lines
1.7 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.
# 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.