• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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.
 
Последнее редактирование:
Сверху Снизу