TelenkovDmitry hace 9 meses
padre
commit
2125ceaa04
Se han modificado 3 ficheros con 40 adiciones y 23 borrados
  1. 10 21
      .obsidian/workspace.json
  2. 29 1
      ROTEK/universal IO/universal IO.md
  3. 1 1
      TODO.md

+ 10 - 21
.obsidian/workspace.json

@@ -13,24 +13,13 @@
             "state": {
               "type": "markdown",
               "state": {
-                "file": "TODO.md",
+                "file": "ROTEK/universal IO/universal IO.md",
                 "mode": "source",
                 "source": false
               }
             }
-          },
-          {
-            "id": "af1a6957e193b84f",
-            "type": "leaf",
-            "state": {
-              "type": "release-notes",
-              "state": {
-                "currentVersion": "1.6.3"
-              }
-            }
           }
-        ],
-        "currentTab": 1
+        ]
       }
     ],
     "direction": "vertical"
@@ -96,7 +85,7 @@
             "state": {
               "type": "backlink",
               "state": {
-                "file": "TODO.md",
+                "file": "ROTEK/universal IO/universal IO.md",
                 "collapseAll": false,
                 "extraContext": false,
                 "sortOrder": "alphabetical",
@@ -128,22 +117,22 @@
   },
   "left-ribbon": {
     "hiddenItems": {
-      "switcher:Open quick switcher": false,
-      "graph:Open graph view": false,
-      "canvas:Create new canvas": false,
-      "command-palette:Open command palette": false,
-      "markdown-importer:Open format converter": false
+      "switcher:Меню быстрого перехода": false,
+      "graph:Граф": false,
+      "canvas:Создать новый холст": false,
+      "command-palette:Открыть палитру команд": false,
+      "markdown-importer:Импорт Markdown-файлов": false
     }
   },
-  "active": "af1a6957e193b84f",
+  "active": "4f8b822ecf1ab6df",
   "lastOpenFiles": [
+    "TODO.md",
     "Счета.md",
     "linux/alacritty.md",
     "linux/Tmux.md",
     "Тренировки и занятия.md",
     "linux/server.md",
     "hardcore web development/4. Linux.md",
-    "TODO.md",
     "proGit.md",
     "FlyElectronics/LT8920.md",
     "ROTEK/universal IO/universal IO.md",

+ 29 - 1
ROTEK/universal IO/universal IO.md

@@ -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`.

+ 1 - 1
TODO.md

@@ -12,7 +12,7 @@
 - [ ] Заказать добавки.
 - [x] Передать показания счетчиков.
 - [x] Забрать вещи из Озона.
-- [ ] Навести порядок на кухне.
+- [x] Навести порядок на кухне.
 <h6>Задачи по датам</h6>
 - [ ] 25 июня долг Сини 15к.
 <h6>Технические задачи</h6>