# 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.