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

Хотел на нем игровую консоль сварганить

Почему именно на нём? Эта штука ж больше про беспроводную связь, а остальное – с боку.

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

Дешевый, мощный проц, нормальное кол-во памяти. Хотел потенциально 3д софт рендер повесить на второе ядро и иметь 3д :)

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

Есть что-то крупицами, но у него проприетарный проц. Есть конечно memory map, там указано где находятся регистры периферии.

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

При этом железо закрытое, бейр метал можно писать - но это костыль без официальных доков

В принципе, на этом можно начать и закончить.

James_Holden ★★★★
()
Ответ на: комментарий от 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)
Ответ на: комментарий от monobogdan1337

Там Xtenza LX. Называть её закрытой несколько некорректно. Другой дело что тулинга толком нет.

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

Распберри пико смотрел? 270 руб, два ядра, божественная реализация стандартной библиотеки, собирается армовой gcc-шкой

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

Понял. Я как писал, консольку хотел сделать, а то китайские на андроиде садят 4к банку за 4-5 часов игры. Не хорошо :)

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

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

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

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

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

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

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

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

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

Я не знаю что это вообще такое, но, пожалуй, соглашусь.

deep-purple ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.