Попробуйте сначала выполнить цель "Clean".Подкажите пожалуйста что не так и как исправить. При сборе прошивки "esp8266web-master" выдает ошибку:
Посмотреть вложение 1590
При сборке "Hallo world" все ок, и проишивка проходит без проблем.
Импортируйте проект, а не копируйте. В теме UDK описано и дано видео как это сделать.Подкажите пожалуйста что не так и как исправить. При сборе прошивки "esp8266web-master" выдает ошибку:
Посмотреть вложение 1590
При сборке "Hallo world" все ок, и проишивка проходит без проблем.
Именно так и делал. Перепробывал все что мог, И напрямую загружал файл с интернета в папку C:\Espressif\examples, и загружал файл esp8266web-0.6.0.tar.gz через File -> Import -> General -> Existing Project into Workspace в строке select arhive file выбирал C:\Espressif\examples\esp8266web-0.6.0.tar.gz и все тоже самое.Импортируйте проект, а не копируйте. В теме UDK описано и дано видео как это сделать.
А где были "падения"?Исправил падение на некоторых функциях WEBFS (WEBFSSeek, WEBFSGetStartAddr)
Лежат здесь:
PowerMeter/webfs.c at master · vad7/PowerMeter · GitHub
PowerMeter/webfs.h at master · vad7/PowerMeter · GitHub
Скачиваете с git https://github.com/pvvx/esp8266web/archive/master.zipНе пинайте но честно не знаю что с этим делать.
Проверку убрал для ускорения.А где были "падения"?
Исходники программы изначально вложены в проект - esp8266web/WEBFS22.zip at master · pvvx/esp8266web · GitHub2pvvx
я вижу вы опять начали коммитить сюда esp8266web/webfs at master · pvvx/esp8266web · GitHub
но там пока только апплоадер. как автоматизировать апплод более менее понятно.
а вот по какому алгоритму собирается образ диска (WEBFS22.exe)? прямое гугление ничего не дало.. Это какой-то свой велосипед?
Наверняка просто в один поток склеиваются файлы через разделитель, ну и какие-то сжимаются...
Не заниматься же реверс-инижинирингом
ЗЫЖ если получиться - запушу к вам на гит.
DNS_TABLE_SIZE = 4 (кэш четыре записи).@pvvx, случайно не знаете, dns должна всегда запрос слать, не смотря на наличие в кэше валидного предыдущего запроса или это библиотека не дописана?
Изменения от SDK 1.4.0:Китайцы выложили новую версию Open source LWIP 1.5.2:
Open source LWIP for ESP8266_NONOS_SDK_V1.5.2 - ESP8266 Developer Zone
Ну да, только оно его не использует, каждый раз по новой запрос идет. Вот думал может так и надо.DNS_TABLE_SIZE = 4 (кэш четыре записи).
А стоит ли беспокоиться о перегрузке по производительности? Это примерно то-же самое и выбирается середина.Ну да, только оно его не использует, каждый раз по новой запрос идет. Вот думал может так и надо.
Дописал проверку.
Я вот думаю, стоит ли беспокоиться о переполнении буфера в web_int_callback?
tcp_puts() не проверяет переполнение, она конечно в web_int_callback() понемногу вставляет, но все же.
Да это относительно легко достичь - вывод html страницы больше размера буфера (сколько он там, 2-3 кило?) и где-то на этой границе вывод переменных. Причем у вас это может вообще не проявиться, если переменные на этой границе не используются, а у кого-то через раз глючить будет.У вас были или наблюдаются переполнения буфера ответа по TCP?
Вы что-то путаете из-за подхода main_loop() - в сотый раз - такого здесь не применяется - никто не льет в буфер сразу весь файл или весь выходной поток, если он более 128 бaйт. Минимальный буфер всего 128 байт (проверяется при передаче запроса на разбор переменной) и всё справляется. Вывод может идти хоть итерациями по 1 байту (минимальная единица информации в данном деле). Для организации блочного вывода там существуют calback-и... Когда буфер наберется под оптимум передачи пакета TCP он и отправляется. Так-же на вход обработки по началу выделяется не 128 байт, а гораздо больше и этот размер доступен для процедуры обработки чтобы заполнить весь буфер за раз, но в процессе циклического исполнения поблочного вывода наличие свободных 128 байт в буфере передачи указывает всего на возможность повтора заданной итерации вывода, до прерывания этого цикла освобождением буфера с помощью передачи по TCP с подтверждением возможности отсылки следующей порции информации и опять циклического исполнения calback вывода в буфер............ И так пока calback не снимется, указав что отработал вывод своих 100500 байт.Да это относительно легко достичь - вывод html страницы больше размера буфера (сколько он там, 2-3 кило?) и где-то на этой границе вывод переменных. Причем у вас это может вообще не проявиться, если переменные на этой границе не используются, а у кого-то через раз глючить будет.
А это что? while((web_conn->msgbufsize - web_conn->msgbuflen >= SCB_SEND_SIZE) - это и есть самая подробная документация.@pvvx, а, вот нашел:
while((web_conn->msgbufsize - web_conn->msgbuflen >= SCB_SEND_SIZE)
Значит нужно убедиться, чтобы web_int_callback() не писал больше SCB_SEND_SIZE.
Это уже проще.
Ну вот разобрались, и дело не в маин лупе, а в хреновом описании, точнее в его отсутствии
Добавлю ремарку к функции....