Запуск FreeRTOS под PlatformIO (Arduino) для ESP32
- Войдите на сайт для отправки комментариев
Ср, 04/12/2019 - 14:51
Кто-нибудь из присутствующих имеет практический опыт в <subj>? Отзовитесь, плиз, в ЛС.
Кто-нибудь из присутствующих имеет практический опыт в <subj>? Отзовитесь, плиз, в ЛС.
Кто-нибудь из присутствующих имеет практический опыт в <subj>? Отзовитесь, плиз, в ЛС.
тут нет лс
Кто-нибудь из присутствующих имеет практический опыт в <subj>? Отзовитесь, плиз, в ЛС.
у всех такой опыт есть. даже у тебя - зайди в папку *AppData\Local\Arduino15\* и сделай поиск: искать файлы с текстом "FreeRTOS" - будешь ужасно удивлён.
далее, открой файл main.cpp там же и посмотри, как всё на самом деле. О_о
Проблема, на которую я наткнулся, столь глобальна и велика, что её не смог бы обойти никто из тех, кто, как и я, взялся бы имплементировать 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 не хотелось бы... Только если не будет другого пути...
Update: проект, в который возникла необходимость имплементировать RTOS, уже достаточно большой. Переносить его во фрймворк ESP-IDF не хотелось бы... Только если не будет другого пути...
Другого пути скорее всего не будет, надо было сразу начинать c esp-idf и mingw
Другого пути скорее всего не будет, надо было сразу начинать c esp-idf и mingw
Кто-нибудь с подобным сталкивался?
каких бибилиотек нет?
прямо сейчас желаю столкнуться с глобальной и вяликой проблемой.
!пердлагаю переименовать тему в: RTOS Шредингера.
Тем, кто столкнётся с подобной проблемой в будущем: для FreeRTOS в ESP32 использована какая-то своя собственная, весьма странная имплементация. В деталях еще предстоит разобраться, но наш проект запустился, когда в void setup() я закоментарил vTaskStartScheduler(); При этом FreeRTOS сама как-то стартует без этой команды, и всё нормально работает.
Тем, кто столкнётся с подобной проблемой в будущем: для FreeRTOS в ESP32 использована какая-то своя собственная, весьма странная имплементация. В деталях еще предстоит разобраться, но наш проект запустился, когда в void setup() я закоментарил vTaskStartScheduler(); При этом FreeRTOS сама как-то стартует без этой команды, и всё нормально работает.
если ты не прекратишь общаться с самим собой и не начнёшь отвечать на чётко поставленные вопросы, то мне придётся ходатайствовать в админуправу форума:спам, робот.
мудень, который поставил мне -1 за пост #8 - выйди обоснуй своё мудацкое поведение: у тебя тоже в сетапе для esp32 vTaskStartScheduler() ?
Клапа, я тебя проплюсовал, шоб ты не нерничал. :)
Клапа, я тебя проплюсовал, шоб ты не нерничал. :)