feat(rs485-boot): add STM32F103 and G474 ports
This commit is contained in:
24
c/rs485-boot/README.md
Normal file
24
c/rs485-boot/README.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user