feat(rtc-service): служба RTC с резервированным backup-томом
Перенесена из k1921vk028/1921vk028/lib/rtc_service. Ядро rtc_service_core.c зависит только от stddef, string и собственных заголовков; доступ к часам и backup-памяти вынесен в rtc_service_port.h. Порт для K1921VK028 идёт в комплекте и служит образцом для следующего МК.
This commit is contained in:
39
c/rtc-service/PROJECT_RELATIONS.md
Normal file
39
c/rtc-service/PROJECT_RELATIONS.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user