Files
templates/c/rtc-service/PROJECT_RELATIONS.md
Andrey Kruchinkin 34cbd92808 feat(rtc-service): служба RTC с резервированным backup-томом
Перенесена из k1921vk028/1921vk028/lib/rtc_service.

Ядро rtc_service_core.c зависит только от stddef, string и собственных
заголовков; доступ к часам и backup-памяти вынесен в rtc_service_port.h.
Порт для K1921VK028 идёт в комплекте и служит образцом для следующего МК.
2026-08-23 01:15:36 +03:00

40 lines
2.0 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.
# PROJECT_RELATIONS.md — RTC Service
## Роль в проекте
RTC Service является отдельной переносимой библиотекой времени и восстановления
состояния через NVR (backup) памяти.
- Переносимое ядро: `rtc_service_core.c`
- Порт к текущему MCU: `rtc_service_port_k1921vk028.c`
- Публичный API: `rtc_service.h`, `rtc_service_types.h`
## Поток данных
`main.c` -> `RtcService_Init` -> `rtc_service_core.c` -> `rtc_service_port_*`
`RtcService_SetDateTime` -> `RtcService_Port_WriteRtc` -> `plib028_rtc`
`RtcService_SetDateTime` -> `RtcService_Port_WriteBackup` -> `plib028_bflash`
`RtcService_Init` -> `RtcService_Port_ReadBackup` -> `plib028_bflash`
`RtcService_Init` -> `RtcService_Port_ReadRtc` -> `plib028_rtc`
## Входные/выходные границы
- `rtc_service_core.c` (переносимый): только через порт-функции.
- `rtc_service_port_k1921vk028.c` (адаптер): напрямую зависит от `plib028_*`.
- `main.c` (приложение): использует только публичный API `rtc_service.h`.
## Данные и владение
- `RtcService_Status`, `RtcService_DateTime` и статусы ошибок — во владении
библиотечного API и хранятся во внешнем приложении.
- Backup-blob в NVR (`16` слов) — владелец `rtc_service_core.c`.
- Доступ к RTC/flash только через порт-функции.
## Важные ограничения
- `RtcService_Port_IsPowerOnReset` в текущей версии возвращает безопасное
значение по умолчанию (`0`), пока не подтверждена схема чтения флага сброса.
- Автовыбор источника RTC (`AUTO`) выбран из-за ограничений текущего PLIB API.