LINUX.ORG.RU

ESP32 - говно! Кто согласен?

 , , ,


2

6

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

SDK очень неповортливое и не умеет нормально в инкременталку(хотя ща получше стало чем год назад), не работает с юникодом адекватно. Или я не прав?

а в плане SDK. Кто его писал?

Китайцы. С осознания этого факта нужно начинать знакомство с данным поделием. И либо осознавая все возможные проблемы сношать себе мозг пользоваться, либо знакомство заканчивать.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от apt_install_lrzsz

Был опыт юзания? Просто интересно послушать мнение тех, кто сделал на нем что-то интересное, желательно сложнее управление лампочками по вайфаю. Хотел на нем игровую консоль сварганить еще давно, с собственным форматом бинарников - чтобы зарезервировать область n памяти надо копировать ВЕСЬ компонент «ядра» в свой проект(с проблемами портируемости при обновлении SDK) и там править скрипт ld. В стмках такого и близко нет.

monobogdan1337
() автор топика
Ответ на: комментарий от monobogdan1337

Потому что этот esp32 заточен на формошлёпство китайскими школьниками и студентами, с чем отлично справляется. А про бареметал они не слышали и он им нахрен не нужён.

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

Пока что как альтернативу вижу китайские платы на аллвиннерах. Они во первых дешевые(400-600руб), а во вторых под них можно писать бейр метал т.к есть и даташит на проц, и исходники юбута есть(у которого и свое небольшое API есть)

monobogdan1337
() автор топика
Ответ на: комментарий от monobogdan1337

Мой опыт состоит из рассказов коллеги о том, как он пытался создать на esp нечто более сложное, чем «мигать лампочками». Плюс, чтение отзывов от разных людей в интернете.

Суммарно состояние такое: код закрыт, память течёт, связь рвётся, баги правят неохотно.

Сам я предпочёл со связкой «закрытый код + китайцы» в данном случае дел не иметь. Сколько бы электроники они сейчас не производили, культуры разработки у них нет.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от monobogdan1337

где-то натыкался на проект с голой железкой, чуваки пока очень мало железа осилили.

Сами сейчас в процессе вкатывания, за рамки сдк пока выходить не потребовалось, правда беспроводнуха нам не нужна на данный момент, железка как железка, по стабильности будем смотреть на натурных тестах

Morin ★★★★
()
Ответ на: комментарий от Morin

Радует что можно затормозить проц если надо, причем без дрочева с PLL - просто одной функцией, и вырубить сетевой стек. Мерял потребление - ~110мА «вхолостую» с сетевым стеком.

monobogdan1337
() автор топика
Ответ на: комментарий от monobogdan1337

без сетевки и на ручнике 40мА :) но оно надо на ручник? батарейки у нас не в почете, 220 наше все)))

а вообще s3 серия очень годная, встроенный usb дебагер\флэшер просто огонь

Morin ★★★★
()
Последнее исправление: Morin (всего исправлений: 1)
Ответ на: комментарий от monobogdan1337

кто сделал на нем что-то

Всё настолько плохо, что я натянул на сабж ардуйню, чтобы хотя бы на банальных вещах мозги не выворачивать

bo4ok
()
Последнее исправление: bo4ok (всего исправлений: 1)

Все с ним ок https://esphome.io/devices/esp32.html

Разве что не смог сделать станцию с tft-экраном+чтение датчиков по бт - на ардуино не хватает памяти и wifi отваливается, на espidf сборка только на x86, ota сломана и лаги (видимо все на 1 ядре висит), так что я просто пробросил все датчики из HA. Еще на нем удобно строить ble-сеть https://github.com/myhomeiot/esphome-components#ble-gateway

Вообще я предпочитаю esp8266, но у него тупо пинов мало под экран и uart, так бы я на нем сделал.

PS: Скоро выйдет esp32-h2 с зигби, надеюсь будет годный маложрущий чип с поддержкой esphome. WiFi как протокол для умного дома устарел.

KillTheCat ★★★★★
()
Последнее исправление: KillTheCat (всего исправлений: 1)
Ответ на: комментарий от bo4ok

Если речь про замудренное апи, то я просто начал прогать нужные модули с докой и открытыми сэмплами :) Настолько апи не информативное. Но в целом вроде норм, завелось без проблем.

monobogdan1337
() автор топика
Ответ на: комментарий от gag

Там ведь ROM в SPI флэшке, и ядро кэширует страницы. Он кэширует страницы «вперед» асинхронно, но если джамп далеко, то это заставит синхронно читать флеху, поэтому и долго.

monobogdan1337
() автор топика
Ответ на: комментарий от monobogdan1337

Поэтому и придуман костыль с IRAM - где код выполняется гораздо быстрее, в нем же и висят прерывания. Прикинь на прерывание грузить страницы с флехи снова и снвоа? То то же. А так там вся карта памяти поделена на instruction и data, и есть даже mmu - правда нахрена если нельзя отображать произвольный адрес в любую часть памяти, зато можно отобразить SPI ROM…

monobogdan1337
() автор топика