Запуск FreeRTOS под PlatformIO (Arduino) для ESP32

b_calavasov
Offline
Зарегистрирован: 11.01.2019

Кто-нибудь из присутствующих имеет практический опыт в <subj>? Отзовитесь, плиз, в ЛС.

b707
Онлайн
Зарегистрирован: 26.05.2017

b_calavasov пишет:

Кто-нибудь из присутствующих имеет практический опыт в <subj>? Отзовитесь, плиз, в ЛС.

тут нет лс

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

b_calavasov пишет:

Кто-нибудь из присутствующих имеет практический опыт в <subj>? Отзовитесь, плиз, в ЛС.

у всех такой опыт есть. даже у тебя - зайди в папку *AppData\Local\Arduino15\* и сделай поиск: искать файлы с текстом "FreeRTOS" - будешь ужасно удивлён.

далее, открой файл main.cpp там же и посмотри, как всё на самом деле. О_о

b_calavasov
Offline
Зарегистрирован: 11.01.2019

Проблема, на которую я наткнулся, столь глобальна и велика, что её не смог бы обойти никто из тех, кто, как и я, взялся бы имплементировать FreeRTOS на ESP32. Именно этих людей я и просил откликнуться.

Из-за глубокой привязки к железу (память, её распределение и объём, частота проца и т.п.) FreeRTOS поставляется не в виде некой универсальной библиотеки, а виде дистрибутиа, который состоит из 3 главных частей: (1) основные С-библиотеки (7 файлов); (2) 17 заголовочных файлов; (3) несколько платформо- и проектозависимых файлов (heap_X.c, FreeRTOSconfig.h, port.h, portmacro.h).

Есть конечный список платформ, на которые FreeRTOS портирована её разработчиками (оф. сайт). Файлы для этих портированных систем включены в состав дистрибутива FreeRTOS. Платформы Espressif ESP32 в этом списке нет. Сама компания Espressif выполнила портирование этой OS для ESP32, но с присущей китайцам самобытностью, целиком сделала это только под свою собственную среду разработки IDF.

Когда ты устанавливаешь в Arduino IDE, либо в PaltformIO VSC поддержку платформы ESP32, тебе действительно приезжает помимо прочего, папка \.platformio\packages\framework-arduinoespressif32\tools\sdk\include\freertos\freertos , да. Но в этой папке лежат только заголовочные и платформозависимые файлы, а самих С-библиотек в этой папке нет; не находятся они и поиском по всему компьютеру. Нет их. Хотя проект, содержащий элементы FreeRTOS, при этом компилируется без ошибок, но в момент запуска шедуллера RTOS устройства ребутится.

Пытаюсь добавить С-файлы из скачанного дистрибутива FreeRTOS - начинает сыпаться целая куча ошибок компиляции типа "неправильный формат функции" и т.п. Явно версии не стыкуются.

Кто-нибудь с подобным сталкивался?

Update: проект, в который возникла необходимость имплементировать RTOS, уже достаточно большой. Переносить его во фрймворк ESP-IDF не хотелось бы... Только если не будет другого пути...

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

b_calavasov пишет:

Update: проект, в который возникла необходимость имплементировать RTOS, уже достаточно большой. Переносить его во фрймворк ESP-IDF не хотелось бы... Только если не будет другого пути...

Другого пути скорее всего не будет, надо было сразу начинать c esp-idf и mingw

b_calavasov
Offline
Зарегистрирован: 11.01.2019

Valera19701 пишет:

Другого пути скорее всего не будет, надо было сразу начинать c esp-idf и mingw

Да, у меня сейчас есть подобные подозрения, но ведь зачем-то же они (espressif) имплементировали поддержку FreeRTOS в пакет поддержки платформы ESP32 для Arduino? Да и категорических утверждений на тему того, что FreeRTOS несовместима с ESP32 в ардуиновском фреймворке, я не встретил.

 

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

b_calavasov пишет:
библиотек в этой папке нет; не находятся они и поиском по всему компьютеру.

Кто-нибудь с подобным сталкивался?


каких бибилиотек нет?
прямо сейчас желаю столкнуться с глобальной и вяликой проблемой.

!пердлагаю переименовать тему в: RTOS Шредингера.

b_calavasov
Offline
Зарегистрирован: 11.01.2019

Тем, кто столкнётся с подобной проблемой в будущем: для FreeRTOS в ESP32 использована какая-то своя собственная, весьма странная имплементация. В деталях еще предстоит разобраться, но наш проект запустился, когда в void setup() я закоментарил vTaskStartScheduler(); При этом FreeRTOS сама как-то стартует без этой команды, и всё нормально работает.

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

b_calavasov пишет:

Тем, кто столкнётся с подобной проблемой в будущем: для FreeRTOS в ESP32 использована какая-то своя собственная, весьма странная имплементация. В деталях еще предстоит разобраться, но наш проект запустился, когда в void setup() я закоментарил vTaskStartScheduler(); При этом FreeRTOS сама как-то стартует без этой команды, и всё нормально работает.


если ты не прекратишь общаться с самим собой и не начнёшь отвечать на чётко поставленные вопросы, то мне придётся ходатайствовать в админуправу форума:спам, робот.

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

мудень, который поставил мне -1 за пост #8 - выйди обоснуй своё мудацкое поведение: у тебя тоже в сетапе для esp32 vTaskStartScheduler() ?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Клапа, я тебя проплюсовал, шоб ты не нерничал. :) 

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

DetSimen пишет:

Клапа, я тебя проплюсовал, шоб ты не нерничал. :) 

причём здесь ты? ты не утверждаешь, что у тебя какая-то неведомая ******** с ртос. ты живой чел, а не бот. забаньте ТС за невменяемость - пусть в личку себе пишет странное.