Всем привет!
В проекте решил применить FreeRTOS и вот возникли вопросы по работе с данными.
О структуре проекта:
Изначально проект линейный и я не использовал FreeRTOS. Но когда подключил модуль SIM800L с его адскими задержками ответов, то понял что без FreeRTOS мне не обойтись. Для SIM800L была создана задача и проблема с задержками ответов решилась. Но встал в вопрос по доступу к данным.
Данные:
Есть 2 структуры (обе в оперативной памяти). В одной хранится настройки всего проекта в другой текущие данные статусов и показания датчиков.
Настройки также сохраняются в файловой системе в JSON формате. (Это удобно так как у устройства есть WEB интерфейс).
И теперь вопрос. Как правильно читать и записывать данные в структуру и в файловую систему из разных задач?
Сейчас SIM800L записывает только в структуру и в момент записи происходит с флагом portENTER_CRITICAL. Чтение происходит без ограничений.
И если я читаю из SPIFFS с флагом portENTER_CRITICAL. То контроллер сваливается в ошибку: Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0).
Просто в моей выделяется 3 направления по задачам. Это СМС на модели SIM800L, WEB интерфейс и операционная деятельность со входами/выходами/датчиками.
И всем трем задачам нужен доступ к структуре и к файловой системе.
Как быть?????
Данных много. И в очереди их не запихнешь.
В проекте решил применить FreeRTOS и вот возникли вопросы по работе с данными.
О структуре проекта:
Изначально проект линейный и я не использовал FreeRTOS. Но когда подключил модуль SIM800L с его адскими задержками ответов, то понял что без FreeRTOS мне не обойтись. Для SIM800L была создана задача и проблема с задержками ответов решилась. Но встал в вопрос по доступу к данным.
Данные:
Есть 2 структуры (обе в оперативной памяти). В одной хранится настройки всего проекта в другой текущие данные статусов и показания датчиков.
Настройки также сохраняются в файловой системе в JSON формате. (Это удобно так как у устройства есть WEB интерфейс).
И теперь вопрос. Как правильно читать и записывать данные в структуру и в файловую систему из разных задач?
Сейчас SIM800L записывает только в структуру и в момент записи происходит с флагом portENTER_CRITICAL. Чтение происходит без ограничений.
И если я читаю из SPIFFS с флагом portENTER_CRITICAL. То контроллер сваливается в ошибку: Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0).
Просто в моей выделяется 3 направления по задачам. Это СМС на модели SIM800L, WEB интерфейс и операционная деятельность со входами/выходами/датчиками.
И всем трем задачам нужен доступ к структуре и к файловой системе.
Как быть?????
Данных много. И в очереди их не запихнешь.