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

Существует ли с++ среда для esp8266?

jcmvbkbc

New member
Смотрите размер структуры pсb у LwIP в его исходниках.
struct tcp_pcb в include\lwip\tcp.h.
У espconn структура на открытое соединение тоже не хилая...
Плюс издержки сегментации pbuf и распределения памяти... :)
Espressif-цы не зря морочались с переносом переменных у printf в область кеширования flash - не лезло уже ничего.
espconn дублирует уже всё что есть у lwip - такой "патч" неверно избранного алгоритма обращения к lwip. А они всё завязали на ней. Всякие ssl и т.д. По тому не переписать, а только патчить и навешивать нового кода обходов ошибки. И похоже от этого закрыли исходники.
Т.е. нигде в этом коде не был замешан С++, а всё равно получилось плохо? Как же так? :)
 

pvvx

Активный участник сообщества
Т.е. нигде в этом коде не был замешан С++, а всё равно получилось плохо? Как же так? :)
Это спросите у программиста Espressif. Мне например всё равно на каком языке писать. Есть мелкие предпочтения, т.к. больше знаю и всё. Новый язык изучается за пару дней. С++ не является новым. :)
Так что работайте - авось пригодиться в следующих вариантах чипов с xtensa-lx10?.
 

anakod

Moderator
Команда форума
Просто оптимизировать надо в тех местах где оптимизация нужна. Размер буферов зависших на закрытых соединениях сюда определенно входит (альтернатива - сокращать время их жизни), а вот список виртуальных функций класса созданного в единственном экземпляре - почти наверняка нет (хотя опять же все зависит только от конкретной реализации). Кроме того, что касается C++, то далеко не все его возможности требуют хоть какой-то дополнительной памяти, а вот удобств дают достаточно много.

Что касается того что на этом железе не сделать нормальный сервер или что тут нельзя использовать C++ - это неправда. Вопрос только в том каковы будут ограничения. А ограничения есть всегда, даже на топовых Xeon серверах со 128 Гб памяти, и дело не в стандартах, просто например ДДос атака или большой трафик забьет канал и TCP/IP стандарты уже никак не помогут.
Если программный стек поднимали даже на Ардуино с 2Кб(!) памяти, то тут уж точно можно добиться весьма и весьма неплохих результатов, еще раз подчеркну, разумеется с заранее заложенными ограничениями.
 

pvvx

Активный участник сообщества
Если программный стек поднимали даже на Ардуино с 2Кб(!) памяти, то тут уж точно можно добиться весьма и весьма неплохих результатов, еще раз подчеркну, разумеется с заранее заложенными ограничениями.
Но у нас тут проблемы с кешем Flash, а перенос хоть части в iram или другую память RAM увеличивает ограничения. Стек на PIC в 1к давно написан (вроде уже более 10 лет).
Интересно, с кем же?
Я думаю вы сами догадались. Или я ещё не всё понял? :)
Синтаксис языка описывается 2-мя 3-мя страницами. Далее идут библиотеки, которые должны зубрить такие как вы.
А для простых людей существуют справочники и опыт. Все железки имеют одинаковые алгоритмы работы и открыв справочник находите название необходимой функции, т.к. с опытом известно что она должна быть или реализуется в несколько шагов. Бывают исключения, но это относиться к недочетам библиотек к языку.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Почему? По-моему все достаточно хорошо работает, можете рассказать подробнее про данные ограничения?
Вывод переменных из RAM в printf уменьшил общую скорость исполнения ПО на модуле в 1.5 раза, за счет перечитывания flash. Это наглядно сказалось в скорости отдачи по TCP. Т.е. теперь требуется оптимизация и по кеш (она есть в лицензионном ПО компилятора, но я ещё это не копал).
Главное ограничение - SDK без исходников и LwIP от туда не выудить. Хотя он в данном ПО самый надежный из всего кода.
И вы зря про 2к в MCU - там то асм вставки, а не c++ и "стеком" TCP это не назвать и близко. И про DDOS - тут одно соединение уже отжирает половину памяти, даже если писать на asm. От внешнего ПО это мало зависит. Такова конфигурация LwIP от Espressif.
 
Последнее редактирование:

jcmvbkbc

New member
Я думаю вы сами догадались. Или я ещё не всё понял? :)
Не стесняйтесь, если начали переход на личности -- переходите до конца.
Синтаксис языка описывается 2-мя 3-мя страницами.
Посмеялся ещё раз. Т.е. кроме синтаксиса в языке учить нечего? Семантики никакой в нём нет? Достаточно знать какие комбинации ключевых слов не вызывают отторжения у компилятора -- и всё?
Отдышался от смеха, открыл стандарт С++ 98 года. Со страницы 35 до страницы 337 -- только о языке, дальше ещё 300 страниц о библиотеке. Вы ошиблись в 100 - 150 раз.
 

pvvx

Активный участник сообщества
Не стесняйтесь, если начали переход на личности -- переходите до конца.

Посмеялся ещё раз. Т.е. кроме синтаксиса в языке учить нечего? Семантики никакой в нём нет? Достаточно знать какие комбинации ключевых слов не вызывают отторжения у компилятора -- и всё?
Отдышался от смеха, открыл стандарт С++ 98 года. Со страницы 35 до страницы 337 -- только о языке, дальше ещё 300 страниц о библиотеке. Вы ошиблись в 100 - 150 раз.
Это книжка для детей? :) Говорите картинок-раскрасок на 150 страниц? :) :)
В самый раз для вас.
Как я понял, вы хотите меня убедить, что C++ такой крутой и неповторимый и самый-самый, а я типа протиф него :)
Ну подумаешь, что он вам сложно дался... Не мерьте по себе других. :)
 
Последнее редактирование:

anakod

Moderator
Команда форума
Главное ограничение - SDK без исходников и LwIP от туда не выудить. Хотя он в данном ПО самый надежный из всего кода.
https://github.com/kadamski/esp-lwip - посмотрите, очень интересное направление разработки.

И вы зря про 2к в MCU - там то асм вставки, а не c++ и "стеком" TCP это не назвать и близко.
Есть и на чистом C\C++ реализации. Разумеется ограничений там куча и возможностей сильно меньше чем мы можем здесь реализовать.

И про DDOS - тут одно соединение уже отжирает половину памяти, даже если писать на asm. От внешнего ПО это мало зависит.
Но ведь оно есть это внешнее окружение и от него никуда не деться. Это я к тому что не столь важно соблюсти все требования стандарта (который разрабатывался под более мощное железо), важно именно добиться качественной работы в решении практических клиентских и северных задач. А высокоуровневый язык нужен только для того чтобы упростить разработку и сделать код более легкоподдерживаемым для сторонних разработчиков.
 

jcmvbkbc

New member
Как я понял, вы хотите меня убедить
Вы ошиблись. Мне было интересно, как далеко может зайти ваше хамство, начавшееся здесь со слов
Если вы считать не умеете
.

Не могли бы вы всё-таки прояснить ситуацию до конца и однозначно сказать, с кем же вы по-вашему мнению имеете дело?
Кто такие "такие как мы" и почему они, по вашему мнению, кому-то что-то что-то должны?
 

pvvx

Активный участник сообщества
Не могли бы вы всё-таки прояснить ситуацию до конца и однозначно сказать, с кем же вы по-вашему мнению имеете дело?
Ну как с кем? С вынуждателем что-то сказать. :)
Кто такие "такие как мы" и почему они, по вашему мнению, кому-то что-то что-то должны?
Это от куда? И где требования? Вроде всё наоборот. Я вам передал информацию для обсуждения, но она вам не нравиться и вы требуете что-то ещё.
Могу довести мысль далее, если вам не понятно: Если вы считать не умеете, "то мне не влом и я посчитаю:".
Опять у вас тучи на горизонте? Тут я пока помочь не могу, воспринимать других не в темных красках. В предыдущих разговорах с вами вы всегда воспринимали неоднозначный ответ/вопрос только с темной стороны...
 
Последнее редактирование:

anakod

Moderator
Команда форума
Успешно собрал и подключил esp-lwip, работает прекрасно. Теперь продолжим злоупотреблять C++'ом :cool:
 

jcmvbkbc

New member
Кто такие "такие как мы" и почему они, по вашему мнению, кому-то что-то что-то должны?
Это от куда? И где требования?
- В самый раз для вас
- библиотеки, которые должны зубрить такие как вы

Вы не могли бы ответить на мой вопрос, предпочтительно не в этом топике?
 

pvvx

Активный участник сообщества
Вы не могли бы ответить на мой вопрос, предпочтительно не в этом топике?
Здравствуйте, многоуважаемый автор поддержки call0 ABI в xtensa gcc. Не могли бы вы объяснить причину, почему не работает C++ в компиляторе к чипу ESP8266 на процессоре семейства Tensilica и когда это будет реализовано?
И если вас не затруднит, то расскажите, что надо подправить в makeфайле или где, чтобы при загрузке в модуль полученных кодов, они не затирали область за загружаемыми данными.

С нетерпением жду ответа. Заранее спасибо.
 

jcmvbkbc

New member
Здравствуйте, многоуважаемый автор поддержки call0 ABI в xtensa gcc. Не могли бы вы объяснить причину, почему не работает C++ в компиляторе к чипу ESP8266 на процессоре семейства Tensilica и когда это будет реализовано?
Причина в том, что вы, pvvx, ничего для этого не сделали. И, полагаю, это не будет никогда реализовано, поскольку вы, pvvx, считаете, что это не нужно.
 

pvvx

Активный участник сообщества
Причина в том, что вы, pvvx, ничего для этого не сделали. И, полагаю, это не будет никогда реализовано, поскольку вы, pvvx, считаете, что это не нужно.
О многоуважаемый автор поддержки call0 ABI в xtensa gcc.
Извините что я не занят набором соглашений между программами, библиотеками и операционной системой, обеспечивающих взаимодействие этих компонентов на низком уровне на данной платформе и не обладаю информацией, необходимой для этого от Cadence, но имеющиеся у вас. Я всего починяю чайники и не имею даже книжек по СИ.
Это очень плохая новость, что специалист такого рода прогнозирует, что C++ никогда не будет на ESP8266.
 
Последнее редактирование:
Сверху Снизу