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.
2 ответа
Лучший ответ:
Наконец-то я понял это трудным путем:
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
Нет, нельзя.
Макрос, который вы пытаетесь настроить, предназначен только для справки и не влияет на размер буфера.
На ESP8266 стек IP (и большая часть остальной системы) предварительно скомпилирован в виде библиотек .a
. Изменение таких вещей, как макрос TCP_SND_BUF
, никогда не изменит то, что было скомпилировано в эти библиотеки. Вместо этого все, что он будет делать, это вызывать проблемы с переполнением буфера и повреждением данных, поскольку другой код получает неверную информацию о размере буфера.
- Несколько клиентских серверов через Wi-Fi
- Как преобразовать полезную нагрузку byte* в строку
- ESP8266 TCP-соединение WiFiClient проблема
- Пиринговая коммуникация
- Как связаться с ESP8266 ESP01, отправив данные через программный сериал на Arduino Uno?
- ESP8266 отправляет TCP HEX-пакет из 4 символов
- Как разобрать 20180810T143000Z в time_t
- Пример класса ESP8266 ASyncTCP
Пусть все богатства мира достигнут тебя, мой друг, ведь я вчера весь день сходил с ума, пытаясь разобраться в этом!, @Bogdan Mircea