/ESP32

Projects developed under ESP-IDF

ESP32

Projects developed under ESP-IDF Дорогие профи-программисты embedded-систем! Этот репозиторий точно не для вас :-).. Этот поток сознания, наверное, больше пригодится для таких как я, нубов-esp-шников. Здесь я собрал свои хобби-проекты для модулей DevKit на ESP32, которые я делал с учебными целями. В чем их смысл? В удовольствии и развлечении. Никакой супер практической ценности, кроме учебной, они не несут. За основу брались либо примеры из самой ESP-IDF, либо подсмотренные на Github'e. Я все это хотел осмыслить, повторить и, по возможности, дополнить своим функционалом и развить. Здесь сливались воедино проекты из разных источников, так что по-сути это мешанина чужих решений. Основной интерес у меня вызвали звуковые возможности ESP-шек, обмен данными по сети и отображение информации на TFT экранах. Я выбрал среду разработки - VisualGDB в IDE MS Visual Stusio 2019 и тулчейн от того же VisualGDB. Это не позволяет идти в ногу со временем, поскольку собранные Toolchain от VisualGDB немного отстают от новинок Espessif. Но для меня это не критично. Мне показалось, что такая связка инструментов более дружественная к новичку, чем расхваливаемая VS Code + PlatformIO. Я с них начинал, но запутался в настройках среды и сломался. Может, еще к выбору MSVS подтолкнуло то, что в прошлой жизни я писал на С# и С++ под Винду. Я далек от мысли, что такие затерянные уголки Гитхаба, как мой репозиторий, посещают образованные люди. Но, может быть, сюда в поисках решений случайно забредет кто-нибудь из новичков. Когда будете смотреть этот кошмарный код, то не ругайте. Смотреть надо больше на комментарии, поскольку, самые печальные моменты в моей жизни были тогда, когда вроде все правильно, все собирается, но не работает. Или работает не так. Учитывая специфику отладки ESP с JTAG'ом (это вам не по брейкпоинтам в C# ходить и переменные разглядывать), еще учтем, что, как правило, в RTOS'е задачи выполняются в разных потоках, и перехватить точку останова та еще задача, вспомним совершенно непонятные ошибки рантайма с жуткими ассемблерными дампами (а вас не пугают распечатки содержимого регистров?), то и вовсе получается оцинкованная жесть. С некоторыми проблемами я боролся часами, часами читал форумы, пытаясь найти ответы. Иногда находил, иногда додумывался сам. Что-то вылилось в комменты. И да, я сознательно отказался от Arduino в пользу FreeRTOS, потому, что все-таки хотел понимать, что происходит в коде. А скрытое под тяжеленной глыбой Ардуины охватить разумом мне не под силу. Хотя так, может, и проще получить результат, но это не для джедаев...