|
@@ -103,4 +103,32 @@ typedef struct
|
|
|
- 01011000 - выключить режим непрерывного чтения (при записи сигнал RDY должен быть низким)
|
|
|
**Регистр состояния**
|
|
|
Для получения регистра состояния нужно записать в регистр связи: 01000000
|
|
|
-В режиме непрерывного чтения до записи инструкции линия DIN должна быть в низком состоянии.
|
|
|
+В режиме непрерывного чтения до записи инструкции линия DIN должна быть в низком состоянии.
|
|
|
+
|
|
|
+<h6>Задачи</h6>
|
|
|
+- Реализовать CLI (интерфейс DEBUG UART) для отладочных целей и помощи в разработке ПО.
|
|
|
+- RTC в режиме uint64_t. Настроить аппаратный таймер с частотой в мс и с синхронизацией от модуля RTC. Реализовать API - чтение/запись, синхронизация uinix-time по MODBUS RTU.
|
|
|
+- Реализовать внутренне API для ведения журнала и архива. Создание разделов, добавление/считывание, удаление записей. Создать тестовый модуль для проверки API. Протестировать.
|
|
|
+- Реализовать функции для чтения у управления журналом и логом по MODBUS RTU.
|
|
|
+
|
|
|
+
|
|
|
+* Размер архива.
|
|
|
+* Количество записей.
|
|
|
+* Текущая точка записи.
|
|
|
+* Событие изменения периода архива.
|
|
|
+<h6>Общие данные ringfs</h6>
|
|
|
+* Объем flash-памяти 2МБт - 512 секторов по 4096 байт.
|
|
|
+* Делим память на два одинаковых раздела под журнал событий и архив, оставляя небольшой резерв в начале каждого раздела.
|
|
|
+* Первые 4 сектора (16 кБт) оставим под служебную информацию.
|
|
|
+* Журнал занимает 252 сектора (1008 кБт) и смещен на 4 сектора относительно начала памяти.
|
|
|
+* Архив занимает 252 сектора (1008 кБт) и смещен на 260 (256 + 4) секторов относительно начала памяти.
|
|
|
+* 4 сектора (257, 258, 259 и 260 - служебная информация (резерв))
|
|
|
+*
|
|
|
+<h6>"Файловая система"</h6>
|
|
|
+**Основные параметры**
|
|
|
+- `sector_size` - размер сектор в байтах. В нашем случае 4096, что соответствует размеру сектора flash-памяти.
|
|
|
+- `sector_offset` - смещения раздела в секторах
|
|
|
+- `sector_count` - размер раздела в секторах. Пока журнал и архив по 252 сектора
|
|
|
+- `object_size` - размер одной записи в байтах
|
|
|
+- `slots_per_sector` - количество записей в одном слоте.
|
|
|
+- `read, write, cursor` - структуры с полями `sector` и `slot`.
|