Короче сколько не пытался вкатиться в esp32(хотя эмбедом относительно давно увлекаюсь), каждый раз осознаю какое это говно. И не в плане железа - ттх чипа просто топовые за свою цену, а в плане SDK. Кто его писал? Зачем в эмбеде такое дрочево с многопоточностью? Например, тому же SPI нельзя просто так сказать «вот здесь задай DMA контроллеру пересылку по SPI из этой области памяти размером n», нужны костыли с прерываниями, уже поверх которых сделан поллинг, и все равно это с очередями и лишним оверхедом. Не проще было SPI сделать на классических критических секциях чем вот это вот? Плюс какие-то огромные инициализаторы, того же SPI - стуктура, описывающая настройки шины это нормально. Но вторая структура, в которой в явном виде намешано все что только можно(это и чипселект, и настройки qspi, которые В ЯВНОМ виде надо проинициализировать в -1, если они не используются). Третья структура с описанием транзакции с миллионом флагов. При этом железо закрытое, бейр метал можно писать - но это костыль без официальных доков. Понамешан ненужный функционал, аля «ну мы для вас сделали механизм разделов и дисков, а еще прикрутили файловую систему и прикрутили это к C API». Вернее, функционал то нужен, но для какого-то конкретного проекта логичнее будет самому это реализовать, нежели полагаться на непонятную реализацию, или на крайняк взять оную из freertos.
SDK очень неповортливое и не умеет нормально в инкременталку(хотя ща получше стало чем год назад), не работает с юникодом адекватно. Или я не прав?