Использование FileData+esp32+freertos

Dmitryyy

✩✩✩✩✩✩✩
5 Сен 2024
2
0
Доброго времени суток.

Подскажите, уже несколько дней бьюсь. Как правильно пользоваться библиотекой GyverLibs /FileData
Или какую нибудь другую применить оптимальнее?

Нужно ли использовать очереди?
или напрямую со структурой общаться как с глобальной переменной?

Решал кто такие непосредственно задачи?

Без очереди все работает)... но я не понимаю на долго ли это, пока пару задач никаких сбоев нет. Но будет параллельный доступ и возникнут ли проблемы в будущем и уже переделывать гораздо больше.

Пытаюсь работать через очередь, записываю структуру в очередь длинной 1. Далее оперирую xQueueOverwrite и xQueuePeek.

И задача отдельная которая переодически вызывает tick

Читаем данные из очереди, копируем в глобальную структуру.

Или вообще все неправильно, подскажите правильный ход решения задачи организации eeprom на esp32 (freertos)

Первый проект начал делать с freertos, боле менее разобрался а тут прям затык.



C++:
void Task_upd_ee_prom(void *pvParameters __attribute__((unused))) {
  for (;;)  // A Task shall never return or exit.
  {
    Data1 tempData;

    while (1) {
      // Ждать данные из очереди
      xQueuePeek(q_ee_prom, &tempData, portMAX_DELAY);
      memcpy(&ee_prom, &tempData, sizeof(ee_prom));
      // Обновить данные

      // Вызывать тикер библиотеки FileData для отслеживания таймаута и записи данных
      if (data_ee.tick() == FD_WRITE) {
        Serial.println("Data updated!");
      }


      vTaskDelay(1000);
    }
  }
}