Например TDA7294

Форум РадиоКот • Просмотр темы - ESP32+FreeRTOS+Массив данных и SPIFFS
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб дек 20, 2025 10:15:34

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: ESP32+FreeRTOS+Массив данных и SPIFFS
СообщениеДобавлено: Чт мар 23, 2023 13:16:36 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Всем привет! :))
В проекте решил применить FreeRTOS и вот возникли вопросы по работе с данными.
О структуре проекта:
Изначально проект линейный и я не использовал FreeRTOS. Но когда подключил модуль SIM800L с его адскими задержками ответов, то понял что без FreeRTOS мне не обойтись. Для SIM800L была создана задача и проблема с задержками ответов решилась. Но встал в вопрос по доступу к данным.
Данные:
Есть 2 структуры (обе в оперативной памяти). В одной хранится настройки всего проекта в другой текущие данные статусов и показания датчиков.
Настройки также сохраняются в файловой системе в JSON формате. (Это удобно так как у устройства есть WEB интерфейс).

И теперь вопрос. Как правильно читать и записывать данные в структуру и в файловую систему из разных задач?

Сейчас SIM800L записывает только в структуру и в момент записи происходит с флагом portENTER_CRITICAL. Чтение происходит без ограничений.

Просто в моей выделяется 3 направления по задачам. Это СМС на модели SIM800L, WEB интерфейс и операционная деятельность со входами/выходами/датчиками.
И всем трем задачам нужен доступ к структуре и к файловой системе.
Как быть????? :dont_know:
Данных много. И в очереди их не запихнешь.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ESP32+FreeRTOS+Массив данных и SPIFFS
СообщениеДобавлено: Чт мар 23, 2023 18:23:19 
Собутыльник Кота
Аватар пользователя

Карма: -22
Рейтинг сообщений: -41
Зарегистрирован: Вс окт 02, 2016 07:34:45
Сообщений: 2976
Рейтинг сообщения: 0
Вам наверное лучше сюда: https://esp8266.ru/forum/
Там только есть проблема - графоман завелся, но люди адекватные и грамотные на форуме есть, и вполне возможно, что успеете толковый ответ получить пока этот графоман Ваше сообщение не обнаружил. 8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ESP32+FreeRTOS+Массив данных и SPIFFS
СообщениеДобавлено: Чт мар 23, 2023 21:03:17 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Спасибо! На форуме помогли!

Оставлю здесь для истории.
Поможет Mutex! Толковая статья 1 и статья 2.
Как пользоваться:
SemaphoreHandle_t mutex_v; //Объявляем глобальную переменную
mutex_v = xSemaphoreCreateMutex(); //В блоке setup создаем Mutex.
И используем в задачах
xSemaphoreTake(mutex_v, portMAX_DELAY); //Берем Mutex
Код с доступом к ресурсу //Здесь производим действия над ресурсом
xSemaphoreGive(mutex_v); //Возвращаем Mutex

Mutex ограничивает доступ к ресурсу. При этом не тормозит общее время и тем самым не вызывает ошибок.
Критические секции (portENTER_CRITICAL) полезны если действия небольшие. (например присвоение переменной значение). Но большие секции отбирают слишком много времени и тогда система падает в ошибку.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y