Перенесена из k1921vk028/1921vk028/lib/rtc_service. Ядро rtc_service_core.c зависит только от stddef, string и собственных заголовков; доступ к часам и backup-памяти вынесен в rtc_service_port.h. Порт для K1921VK028 идёт в комплекте и служит образцом для следующего МК.
2.0 KiB
2.0 KiB
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(приложение): использует только публичный APIrtc_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.