Разработка ‘библиотеки’ малого webсервера на esp8266.

Здравствуйте, уважаемый автор!
ситуация такая: сввежий UDK, проект esp8266web-master в примерах.
пытаюсь скомпилировать и получаю следующую ошибку:
Код:
:\Espressif\xtensa-lx106-elf\bin\xtensa-lx106-elf-ar.exe: creating .output/eagle/lib/libsdk.a
cd _temp; c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar xo ../.output/eagle/lib/libsdk.a; c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar xo ../../../lib/libmgcc.a; c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar xo ../../../lib/libmmain.a; c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar xo ../../../lib/libmphy.a; c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar xo ../../../lib/libpp.a; c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar xo ../../../lib/libmwpa.a; c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar xo ../../../lib/libcrypto.a; c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar xo ../../../lib/libnet80211_new.a;
../../../lib/libcrypto.a: No such file or directory
c:\Espressif\xtensa-lx106-elf\bin\xtensa-lx106-elf-ar.exe: ../../../lib/libnet80211_new.a: No such file or directory
../../Makefile:231: recipe for target '../../lib/libsdk.a' failed
c:\Espressif\xtensa-lx106-elf\bin\xtensa-lx106-elf-ar.exe: mingw32-make[2]: *** [../../lib/libsdk.a] Error 9
mingw32-make[2]: Leaving directory 'D:/EWorkNow/MC_Sourcers_ESP8266/esp8266web-master/app/sdklib'
../Makefile:276: recipe for target '.subdirs' failed
mingw32-make[1]: Leaving directory 'D:/EWorkNow/MC_Sourcers_ESP8266/esp8266web-master/app'
mingw32-make[1]: *** [.subdirs] Error 2
D:/EWorkNow/MC_Sourcers_ESP8266/esp8266web-master/Makefile:276: recipe for target '.subdirs' failed
mingw32-make.exe: *** [.subdirs] Error 2

13:06:33 Build Finished (took 37s.456ms)
на всякий случай поставил python 27 на диск С. ошибка не ушла.

глобальная цель: сделать простую сделать свою версию (подобие) проекта матричных часов
текущая цель: поднять i2c (библиотека)

вопрос: в чем разница в файлах папки bios и тех же самых файлов идущих с UDK?
 

pvvx

Активный участник сообщества
вопрос: в чем разница в файлах папки bios и тех же самых файлов идущих с UDK?
Разное описание регистров SoC и соответственно макросов обращения к ним. В отличии от SDK транслируется более оптимально, примерно в 2-3 раза по размеру и скорости исполнения. Причины - в GCC нет многих оптимизаций для этого процессора, а такое описание заставляет его сделать оптимизацию кода через зад. Такого рода оптимизации есть только у платных версий компиляторов... Про это всё описано в форуме более года назад...
 

pvvx

Активный участник сообщества
@pvvx, у вас тут какая-то недописка?
esp8266web/tcp_srv_conn.c at master · pvvx/esp8266web · GitHub

tcp_srv_conn.c: In function 'tcpsrv_server_accept':
tcp_srv_conn.c:933:25: error: unused variable 'lpcb' [-Werror=unused-variable]
lpcb - используется тут esp8266web/tcp_srv_conn.c at master · pvvx/esp8266web · GitHub
У вас просто отключен LWIP_PLATFORM_ASSERT(x) в конфигах LwIP (#define LWIP_DEBUG).
Можете стереть обе строки или навешать там всяких условий - включен Lwip ASSERT или нет... Неизбежное зло от опций компилятору -Wall -Werror (включены все варнинги и любой варниниг считать ошибкой)
 
Разное описание регистров SoC и соответственно макросов обращения к ним. В отличии от SDK транслируется более оптимально, примерно в 2-3 раза по размеру и скорости исполнения. Причины - в GCC нет многих оптимизаций для этого процессора, а такое описание заставляет его сделать оптимизацию кода через зад. Такого рода оптимизации есть только у платных версий компиляторов... Про это всё описано в форуме более года назад...
интресно... как проинталировать так чтобы скомпилировалось? если есть ответ в теме - буду благодарен.
з.ы. пожалуйста напишите F.A.Q.

upd + почитал тему с 2016.10 то есть с 79 страницы:
чего-то не хватает в UDK если пишет что в папке xtensa не найден файл libcrypto.a и ещё какие-то...
как это вылечить, точнее где взять недостающее? установить предыдущую версию UDK(154?) или как? мне банально сделать веб-морду, поднять i2c и всё...
 
Последнее редактирование:

pvvx

Активный участник сообщества
интресно... как проинталировать так чтобы скомпилировалось? если есть ответ в теме - буду благодарен.
з.ы. пожалуйста напишите F.A.Q.

upd + почитал тему с 2016.10 то есть с 79 страницы:
чего-то не хватает в UDK если пишет что в папке xtensa не найден файл libcrypto.a и ещё какие-то...
как это вылечить, точнее где взять недостающее? установить предыдущую версию UDK(154?) или как? мне банально сделать веб-морду, поднять i2c и всё...
Последние UDK SHERTS делает под себя и простых примеров типа print("Hello World!") с удаленными основными пакетами MinGW и Питона. У меня установлены старые UDK и поверх них новые.
Для сборки любого проекта, практически на любой микроконтроллер, вам необходимы:
1) MinGW32 + MinGW64 cо стандартным набором утилит, с целью поддержки стандартных линух команд и GCC.
2) Python версии 2.7 с несколькими пакетами. Раз ESP8266 программируется через UART, то нужна установка serial либы в нем.
3) Пакет GCC компилятора для данного проца.
Это всё. Если оно установлено и правильно прописаны пути к данным пакетам в windows, то mingw32-make.exe запущенная в основном каталоге проекта соберет его.
Расписывать какие-то FAQ тут не о чем. Если пользователь не в состоянии поставить стандартные пакеты, то о каком программировании идет речь? :confused: В природе это называется - естественный отбор.
Берите Arduino и пишите в нем свой проект, копируя действия из всяких youtube и блогов.
 
Последнее редактирование:
pvvx,
Последние UDK SHERTS делает под себя и простых примеров типа print("Hello World!") с удаленными основными пакетами MinGW и Питона. У меня установлены старые UDK и поверх них новые.
Для сборки любого проекта, практически на любой микроконтроллер, вам необходимы:
1) MinGW32 + MinGW64 cо стандартным набором утилит, с целью поддержки стандартных линух команд и GCC.
2) Python версии 2.7 с несколькими пакетами. Раз ESP8266 программируется через UART, то нужна установка serial либы в нем.
3) Пакет GCC компилятора для данного проца.
Это всё. Если оно установлено и правильно прописаны пути к данным пакетам в windows, то mingw32-make.exe запущенная в основном каталоге проекта соберет его.
Расписывать какие-то FAQ тут не о чем. Если пользователь не в состоянии поставить стандартные пакеты, то о каком программировании идет речь? :confused: В природе это называется - естественный отбор.
Берите Arduino и пишите в нем свой проект, копируя действия из всяких youtube и блогов.
В природе это называется - естественный отбор.
я вам не конкурент. просто спросил совет и выразил пожелание. можно и без гонора. спасибо и на том что написали что стоит и что должно быть.
насчёт ардуни - ардуня суть есть Ересь и тупик! и предлагать такое - оскорбление минимум. поэтому что-то своё и хочу творить. но для начала нужно банально делать первые шаги, и может отвечу не только за себя, есть такие люди которым нужен наставник на первой поре. я - из таких. плохо это или хорошо. отсюда и вопросы, пусть порой тупые для профессионалов. но откуда сами профессионалы вышли?

про питон и сериал пакет информацию нашёл сам. установлено, но дело не в нём.
то есть получается что нужно просто всё поставить "как есть" из интернета без всяких сборок UDK, так? или методично начиная с первой версии смешать всё в кучу?
 

pvvx

Активный участник сообщества
про питон и сериал пакет информацию нашёл сам. установлено, но дело не в нём.
то есть получается что нужно просто всё поставить "как есть" из интернета без всяких сборок UDK, так? или методично начиная с первой версии смешать всё в кучу?
Можно и так и сяк.
Оптимальнее наверно поставить UDK и MinGW32 + MinGW64 c MSYS
Это годиться для многих проектов на разные MCU.

PS: А про конкуренцию - это не ко мне. Это ваша борьба и вам надо обучиться.
"Обучить невозможно - можно только научиться." - (с) не мой - я токо разместил объяву... :)
Всё течет и меняется. Когда собирался данный проект UDK хватало, теперь UDK сокращен. Инсталляции имели одни опции, сегодня другие. Ни один FAQ это учесть не может, или надо посвятить всю жизнь каждодневной проверке что там изменилось в новой версии и редакции его. Вы своим предложением сделать FAQ желаете чтобы я этим занимался всю жизнь. Так что - извините и идите в ... :)
 
Последнее редактирование:
Python версии 2.7 с несколькими пакетами
сериал и какие ещё пакеты? как раз оказия начать питон осваивать...
наверно стоит этот вопрос на другом форуме задать, но на втором компе(работаю над этой темой и дома и с работы) питон27 установлено, но установщик сериал пакета пишет что питон не установлен в реестре. может значете в чём может быть прична? могу и сам погуглять. просто тут удобный случай подвернулся...
 

pvvx

Активный участник сообщества
сериал и какие ещё пакеты? как раз оказия начать питон осваивать...
наверно стоит этот вопрос на другом форуме задать, но на втором компе(работаю над этой темой и дома и с работы) питон27 установлено, но установщик сериал пакета пишет что питон не установлен в реестре. может значете в чём может быть прична? могу и сам погуглять. просто тут удобный случай подвернулся...
В реестре питону ничего не требуется. Это фича только установщика той версии. Послать.
Вам, после установки 3-х пакетов (GCC, MinGW, Python27) требуется только правильный PATH, с указанием директорий их bin. Для MinGW желательно в последовательности bin от 64, bin от 32, bin от ...msys\1.0\bin, т.к. mingw32-make.exe из bin от 64 исправляет некоторые ошибки windows... Это сегодня так - как будет с версиями завтра - не знаю.
Процессор в ESP8266 не распространенный, GCC на него убогий, версии не отлаженные и новые могут содержать другие фичи и стандартные либы, которые могут быть несовместимы...
 
Последнее редактирование:
А для чего нужны батники в папке lib?

upd:
ну теперь оcталось только установить pyserial (если я правильно понимаю лог консоли):

Код:
------------------------------------------------------------------------------
Traceback (most recent call last):
  File "F:/EWorkNow/MC_Sourcers_ESP8266/esp8266web-master/esptool.py", line 22, in <module>
    import serial
ImportError: No module named serial
../Makefile:213: recipe for target '.output/eagle/bin/eagle.app.v6.bin' failed
mingw32-make[1]: *** [.output/eagle/bin/eagle.app.v6.bin] Error 1
mingw32-make[1]: Leaving directory 'F:/EWorkNow/MC_Sourcers_ESP8266/esp8266web-master/app'
mingw32-make.exe: *** [.subdirs] Error 2
F:/EWorkNow/MC_Sourcers_ESP8266/esp8266web-master/Makefile:276: recipe for target '.subdirs' failed
 

pvvx

Активный участник сообщества
[off]то есть установить UDK + mingw + скачать ваш проект с гитхаба и последовательно позапускать батники из папки Lib?[/off]
Нет. Там уже готовые либы, некоторые с бинарными патчами. SDK от UDK не требуется.
 
Спасибо большое! ВСё стало и наконец скомпилировалось! теперь можно нормальную морду сделать...

для всех остальных в помощь:
1) качаем и ставим UDK от 2016.10
2) ставим MinGW64 и MSYS | MinGW
3) ставим https://www.python.org/ftp/python/3.6.1/python-3.6.1.exe
4) поверх этого https://pypi.python.org/packages/47...in32.exe#md5=21555387937eeb79126cde25abee4b35
5) качаем и распаковываем последнюю версию GitHub - pvvx/esp8266web: Small web server on ESP8266
 
Скомпилится то скомпилировалось, это хорошо...
насколько я понял то основная структура подобна примерам из UDK: com порт выставляется в makefile; clean, all - компиляция...
app/user_main.c - основной исполнительный файл и подключение своего дополнительного кода можно сделать только тут через #ifdef USE_CHTOTOTAMSVOE с прописыванием пути в инклуде
target FlashAll - залить код на модуль.
закачка веб-содержимого только через WEBFS22.exe? через тот же COM порт н получится?
upd:
мда... богат функционал, ничего не скажешь, колоссальная работа!
понемногу копаю тему и проект, нашёл волшебный параметр #define PROGECT_NUMBER
осталось только понять как заливать WEBFiles.bin и будет счастье...

з.ы. простите за поток сознания и мыслей - но записывать думаю сюда будет полезно.
 
Последнее редактирование:
Самая последняя версия малого веб-сервера скачанная вчера с гит-хаба
при выборе #if PROGECT_NUMBER == 2 (пустой веб сервер) при компиляции выдаётся ошибка
Код:
web_int_callbacks.c:497:7: error: implicit declaration of function 'tcp2uart_ajax_rx' [-Werror=implicit-function-declaration]
       tcp2uart_ajax_rx(ts_conn, tmo);
       ^
полазил по коду и увидел что требуется #define USE_TCP2UART 12345 однако при PROGECT_NUMBER == 2 этого режима нет... и вылазит вышенаписанная ошибка

автор, что подскажете?
 
Последнее редактирование:
Сверху Снизу