• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

htpps client

pvvx

Активный участник сообщества
Всё, что есть в ESP – это портирование чужих либ на данный чип и в основном для привода в соответствие к Arduino. Сиё действие, адаптация любого аналогичного чипа к Arduino занимает два вечера нормального специализированного программиста. Это вся ценность данного зомбика.
А вы уже потратили больше времени на борьбу с проприетарщиной от Espressif. Чтобы сделать что-то лучше вам будет необходимо ещё больше погрузиться в борьбу с этой проприетарщиной, а не заниматься изучением чего-то нового или перспективного.
Завтра и стек Lwip уже не будет обеспечивать необходимые потребности, т.к. всё меняется, а он устарел полностью и безвозвратно. Это касается только Lwip, а всё остальное в ESP - ещё хуже - полностью морально и физически устарело.
Т.е. на сей день он уже не обеспечивает даже функцию начального обучения и ознакомления с текущими реалиями WiFi и прочих коммуникаций для Iot. И все кто с ним связывается изучают устаревшие методы и подходы уже завтра несовместимые с жизнью. Т.е. некромансеры.
 

Pilnikov

Active member
Ну выж каждый год новый айфон не покупаете? В погоне за лучшим? Или покупаете? Изучать перспективное полезно если в этом есть перспектива. Или желание заработать. Для меня это все хобби, не более, чтобы мозг мой пасьянс не сожрал. На есп хоть какая то вменяемая экосистема есть. И купить не сложно. И ценник не заоблачный. и живых примеров уже не один не два. Опять же программатор специализированный не нужен. и куча софта чтобы войти. Тот же RTL - он же супер, но не взлетел, не взлетел ведь так? А почему? потому что баба яга у нас одна, а нас дуринщегов - толпы. и всем подавай готовые решения. А сами мы думать не хотим. Но критиковать нас за это не стоит - не благодарное это занятие - мы все равно не поменяемся. Надо просто научиться жить с нами в некоей гармонии что ли. Подкидывать нам кусочки вкусные иногда, а пока мы их жуем - искать для себя новые.
просто все эти чипы с файфаем уже далеко не 89с51 и даже не атмел328 и даже не 580вм80а и работа с ними требует далеко не средних навыков программирования
 

pvvx

Активный участник сообщества
Вас никто не критикует, а хобби – это игра. По опыту, с начала появления электроники, специализированных толкучек, фидо и интернет, в народ выходят только проблемные устройства и устройства с закрытой информацией. И чем больше проблем, тем лучше. Только в таких устройствах есть во что поиграть. В них и играют более увлеченные игроки. Эти игры ограничены возможностями осилить малые задачки в одиночку...

В полностью рабочем, готовом устройстве, имеющем полную документацию нет ничего интересного для хобби или игры. Для взлета на пик моды требуется ещё какая малая модная фича, которая была недоступна до этого массам – широко не представлена на рынке.

В итоге модная игра с каким-то устройством развивается до определенной стадии - пока устройство и его функции не переходят в обыденщину, а рынок заваливается более современными и качественными решениями.
Но вы так и тянете в рот эту бяку, т.е. самой худший из вариантов.
 

pvvx

Активный участник сообщества
Вот тут вы совсем нечестно пишите:
Для меня это все хобби, не более, чтобы мозг мой пасьянс не сожрал. На есп хоть какая то вменяемая экосистема есть. И купить не сложно. И ценник не заоблачный. и живых примеров уже не один не два. Опять же программатор специализированный не нужен. и куча софта чтобы войти. Тот же RTL - он же супер, но не взлетел, не взлетел ведь так? А почему? потому что баба яга у нас одна, а нас дуринщегов - толпы. и всем подавай готовые решения. А сами мы думать не хотим. Но критиковать нас за это не стоит - не благодарное это занятие - мы все равно не поменяемся. Надо просто научиться жить с нами в некоей гармонии что ли. Подкидывать нам кусочки вкусные иногда, а пока мы их жуем - искать для себя новые.
просто все эти чипы с файфаем уже далеко не 89с51 и даже не атмел328 и даже не 580вм80а и работа с ними требует далеко не средних навыков программирования
По этому, как Баба-Яга я не могу это вам пропустить за охраняемый раздел/кордон и выдать клубочка. Вы не готовы, а гармонию вам обеспечивает второй эшелон леммингов. К ним и обращайтесь.
И не надо всё это путать с низкими врожденными поведенческими инстинктами - желание причастности к чему-то великому, доминированию и социальную зависимость слабого члена “общества”.
 

pvvx

Активный участник сообщества
Я же вам ответил – вы спрашиваете не у того.
Вам перевести “на кухонный язык” как работают шины Tensilica-Xtensa ip модели CPU и как будет выглядеть оптимизация для описания на C/C++?
Для оптимизации обращения к регистрам контроллеров лучше использовать передаваемый в процедуру указатель. Тогда генерируемый код gcc и прочих трансляторов будет (возможно – зависит от тупости кодогенератора) содержать непосредственный вывод в регистры по адресу со смещением. Т.е. на каждый вывод всего одна команда ASM, без загрузки каждый раз указателей на следующий volatile регистр.

А "изящно" может быть только при вводе нормативов "классического" кодинга, что не совместимо с оптимизаций.

Общий вопрос - Как в есп записать байт в GPIO? - это к Kolbans-Books и подобным.
 

pvvx

Активный участник сообщества
Вот там описаны #define для регистров ESP32:
Если вы используете этот ужас, то последовательность команд типа:
REG_WRITE(GPIO_OUT_REG1, data1);
REG_WRITE(GPIO_OUT_REG2, data2);
REG_WRITE(GPIO_OUT_REG3, data3);
Будет странслирована в дикую неоптимизированную консткцию:
...
mov regx, [pc+x1] // чтение значения по адресу pGPIO_OUT_REG1
memw // ожидание/опустошение кещей
mov [regx],data
mov regx, [pc+x2] // чтение значения по адресу pGPIO_OUT_REG2
memw // ожидание/опустошение кещей
mov [regx],data2
mov regx, [pc+x3] // чтение значения по адресу pGPIO_OUT_REG2
memw // ожидание/опустошение кещей
mov [regx],data3
...
pGPIO_OUT_REG1 dw GPIO_OUT_REG1
pGPIO_OUT_REG2 dw GPIO_OUT_REG2
pGPIO_OUT_REG3 dw GPIO_OUT_REG3

Вместо:
...
mov regx, [pc+x] // чтение значения по адресу pGPIO_OUT_REG
mov [regx+x1],data1 // где x - смещение адреса GPIO_OUT_REG1 относительно базы GPIO_OUT_REG
mov [regx+x2],data2 // где x - смещение адреса GPIO_OUT_REG2 относительно базы GPIO_OUT_REG
mov [regx+x3],data3 // где x - смещение адреса GPIO_OUT_REG3 относительно базы GPIO_OUT_REG
...
pGPIO_OUT_REG dw GPIO_OUT_REG

Чтобы это сработало в C, C++ необходимо описать регистры GPIO к примеру как это описано в STM32 или в моей Web-свалке, а не китайскими #define.
 

pvvx

Активный участник сообщества
А далее надо разобрать:
  • зависимости процедур работающих с GPIO в ROM и прочих базовых либах. (Вы же меняете сто-то там, а система не знает и работа системных функций будет нарушена)
  • учесть атомарность элементарных операций вывода/вывода. (В ESP32 вооще 2 ядра и пока вы там что-то меняете в регистре, второе тоже может что-то поменять)
  • учесть атомарность процедуры работы с GPIO как с устройством. (В случае RTOS - семафоры-светофоры на занятость устройства)
  • разобрать особенности работы контроллера GPIO и шины к нему (в основном его FIFO).
Ничего этого в Arduino не сделано.
 

pvvx

Активный участник сообщества
Ну а далее надо разобрать что там у вас по схеме соединений и прочие фигни схемотехники с выводами GPIO, тайминги внешних устройств, алгоритмы...
Теперь о
Может приземлимся?
И теперь, учитывая описанное, ваш вопрос переквалифицируется в - "Срочно принесите мне готовое устройство надом с пивом, да бабами. Я же король, а не раб! Я не хочу играть, у меня нет хобби и не хочу ничего познавать и создавать."
 

Pilnikov

Active member
Эко вас торкает. В вопросе где речь шла про ардуино? Вопрлс стоял просто как записать байт в гпио целиком а не побитно. Причем тут регистры тензилики атомарность целостность и реакция остального мира? Может проще в матрице гпио покопаться. Мне же не надо супер быстрое устройство - про это не было разговора.
 

Pilnikov

Active member
А еще про два ядра. Мне надо не на обычный есп32 а на есп32s2, а у него одно ядро. И гпиошек полно - отсюда и желание сразу помногу выводить
 

pvvx

Активный участник сообщества
А еще про два ядра. Мне надо не на обычный есп32 а на есп32s2, а у него одно ядро. И гпиошек полно - отсюда и желание сразу помногу выводить
У него так-же много прерываний, а так-же наверняка RTOS и вы будете вместе с ними выводить... если не запретите и т.д.
 
Сверху Снизу