ESP8266 Wemos D1 min pro — как изменить TCP_SND_BUF?

Есть ли способ изменить размер буфера отправки TCP (TCP_SND_BUF) в этом модуле?

Теперь оно равно TCP_SND_BUF = 2 * TCP_MSS = 2 * 1460 = 2920.

Редактирование lwipopts.h ничего не меняет.

Тот же вопрос относится к ΤCP_MSS, TCP_WND и т. д.

Я использую вариант v2 с более высокой пропускной способностью. Платформа — Microchip Studio с надстройкой vMicro Arduino.

, 👍0


2 ответа


Лучший ответ:

1

Наконец-то я понял это трудным путем:

https://github.com/esp8266/Arduino/discussions/8616


Установите Git для Windows (https://git-scm.com/download/win)

Установите MinGW для Windows (https://sourceforge.net/projects/mingw)

В диспетчере установки MinGW включите:

  • mingw-developer-toolkit
  • база mingw32
  • mingw32-gcc-g++
  • msys-база

(не уверен, что все это необходимо, но на всякий случай)

поместите C:\MinGW\bin в ПУТЬ Windows (проверьте это https://www.rapidee.com)

перезагрузить компьютер

переименуйте C:\MinGW\bin\mingw32-make.exe в C:\MinGW\bin\make.exe

откройте терминал bash (просто введите bash в run)

(теперь предполагается, что аппаратные файлы находятся в папке \Documents\Arduino\hardware\esp8266com\esp8266)

перейдите в \tools\sdk\lwip2

необязательно: измените параметры lwip в \tools\sdk\lwip2\builder\glue-lwip\arduino\lwipopts.h

(внимание: НЕ \tools\sdk\lwip2\include\lwipopts.h, это будет перезаписано!)

введите bash: make install для сборки библиотек в \esp8266com\esp8266\tools\sdk\lwip2\builder

введите bash: сделать чистым, чтобы очистить \esp8266com\esp8266\tools\sdk\lwip2\builder

наконец скопируйте новые библиотеки в \esp8266com\esp8266\tools\sdk\lib

,

Пусть все богатства мира достигнут тебя, мой друг, ведь я вчера весь день сходил с ума, пытаясь разобраться в этом!, @Bogdan Mircea


1

Нет, нельзя.

Макрос, который вы пытаетесь настроить, предназначен только для справки и не влияет на размер буфера.

На ESP8266 стек IP (и большая часть остальной системы) предварительно скомпилирован в виде библиотек .a. Изменение таких вещей, как макрос TCP_SND_BUF, никогда не изменит то, что было скомпилировано в эти библиотеки. Вместо этого все, что он будет делать, это вызывать проблемы с переполнением буфера и повреждением данных, поскольку другой код получает неверную информацию о размере буфера.

,