RTOS и esp

Доброго всем времени суток.
Продолжаю развлекаться с esp-хами. Как я уже ранее писал, одну из программ для 8266 переписал для 32. И все было бы гладко, если бы не вкравшаяся невесть откуда кириллистическая «а», которую компилятор по неизвестным мне причинам пропускал для 8266 (кстати я еще несколько нашел именно а в других программах для нее).
ПРЕАМБУЛА
Однако я понял, что поддерживать старые модули одновременно радуясь возможностям новых и не забывать переносить туда-сюда новые или исправленные куски кода это дурдом.
Тогда я не поленился и сделал универсальную версию на ifdef и проч.
Стало легче. Однако радости RTOS-а затмевают радости Ticker-а, а инициализация тиков сильно отличается от тасков и дурдом просто стал дурдомом с ifdef-ами. И потому надо только аппаратную конфигурацию и инклбды заифдефайнить а основные тексты должны быть максимально одинаковы. На командах препроцессора я сделал универсальные функции для обоих случаев, но это вообще дурдом лютый.
АМБУЛА
Пробовал ли кто писать для esp8266 с sdk-rtos? В ардуино IDE? А то в инете сплошь примеры для взрослых:) да их кот наплакал. В наплаканном достаточно странная установка rtos-ядра с бубнами и плясками линуксовых довесков, про которые автор говорит что сильно тормозные под виндами.
Если был такой опыт киньтесь в меня примером как этот sdk-rtos подключать плз.

Да бл… Откуда Вы это беретё???!!! ФАБУЛА!!! ФА-БУ-ЛА!

Преамбула — Википедия.

1 лайк

Новый зануда на форуме? Дело Андриано бессмертно?

“Преамбула/Амбула” это не безграмотность, а инет-традиция. Учите же хотя бы Лурк те, кому сеть не дом родной, а инструмент связи.
Нет!!! Инет это квазигосудартство со своей историей и своими обычаями.

1 лайк

Я на книгах воспитан, мне этого похоже никогда не понять.

Главное, какая нафик разница на ардуино форуме - амбула - фамбула?
Про вопрос ТС уже никто и не вспоминает…

1 лайк

на его вопрос один ответ: писать под фриРТОС для ЕСП32 онли. Нет такой разници в цене, чтобы пользоваться ЕСП8266. Старый запас пустить на другие проекты, не требующие РТОС.

1 лайк

Хм, оно то понятно, но есть в разных местах уже установленные и поддерживаемые системы на 8266. Придется их все менять аппаратно :frowning:

Написанные БЕЗ FreeRTOS. Вот пусть такими и останутся.
Есть некая реализация FreeRTOS под Мегу, это же не значит, что её нужно использовать в рабочем проекте?!
И наоборот: для ESP32 FreeRTOS естественная система, специально производителем адаптированная и писать под ESP32 БЕЗ FreeRTOS - глупое чудачество.

Оставь 8266 в покое. Просто ради того, что занудство не позволит тебе поверить мне на слово, поясню: у 8266 одно ядро. Реализация ВиФи весьма ресурсоемка и должна работать с высоким приоритетом. Поэтому Еспрессив и не стала ставить FreeRTOS как естественную систему на одноядерный процессор. Как только сделали двухядерный - сразу поставили. Они давно и плотно занимались внедрением FreeRTOS, но основной средой сделали ее на ESP32. Стало понятнее?

Понятно.
Штош, придется переползать полностью на 32.
Благодарю за совет.

Если фонариками помигать или кнопочками побаловаться - нормально.
Когда столкнетесь с ситуацией, в которой интервал переключения между задачами в 1 мс покажется вам бесконечно большим, тогда поймете, что серьезный проект в реальном времени создать не получится.
Тогда окажется, что далеко не все задачи можно решать на FreeRtos.
Навскидку: разница в скорости FreeRtos и главного цикла - примерно в 100 раз.
Ради этого пришлось переписать проект.
Так что, не все так просто с FreeRtos. Контроллер: ESP32D

так радуйся, не оскудеет рука дающего

У меня реализуемая задача - управление большими и инертными тепловыми объектами. Измерения температуры раз в 5 секунд более чем часты. Отслеживание уровней, подача и удаление жидкостей… общий контроль за процессом и отсылка телеметрии на агрегатор. Задержки в тасках от 5 секунд до 10 минут. А учитывая, что первая версия на нане работала на имитации процессов миллисами, вторая на 8266 под Ticker-ом, RTOS попал ващще втему :slight_smile: да и никто не мешает критичные по скорости сущности держать в главном цикле.

:sweat_smile:если ты посмотришь внутрь ардуино плагина ЕСП32, то увидишь, что loop() просто одна из задач. не самая приоритетная.
Так что не читай чужих глупостей, лучше свои делай! :wink: Удовольствия больше.

1 лайк

Да, спасибо, еще одна задачка- поиграться с приортетами, чисто для понимания.

у еспрессив прекрасная документация. И примеры замечательные. Все на их сайте.
Есть пример с приоритетами для обслуживания критичных задач ввода-вывода. Я сходу не найду, но если попадется на глаза - кину ссылку.
Хотя, судя по твоему описанию, у тебя нет ничего критичного.

Да так, однако обязательно хочу пощупать для другого проекта.
Спасибо