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

2.0 KiB
Raw Blame History

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.