• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

Virtual

New member
Как они прицепятся, если нет ссылок туда? :confused:
самому интересно ;)
в коде ссылки есть, а у вас при компиле meSDK ругани нет!.
./ovls/sht7x/main/fost02.c:#include <math.h>
./ovls/ina219/main/ina219.c:#include <math.h>
./app/sdklib/lwip/core/ipv4/autoip.c:#include <stdlib.h>
./app/sdklib/lwip/core/dhcp.c: * #define DHCP_GLOBAL_XID_HEADER "stdlib.h"
./app/sdklib/lwip/api/netdb.c:#include <stdlib.h>
./app/sdklib/system/mem_manager.c:#include <stdlib.h>
./app/gdbstub/gdbstub.c:#include <string.h>
./app/sdklib/lwip/netif/etharp.c:#include <string.h>
./app/sdklib/lwip/core/mem.c:#include <string.h>
./app/sdklib/lwip/core/sntp.c://#include <string.h>
./app/sdklib/lwip/core/tcp_out.c:#include <string.h>
./app/sdklib/lwip/core/dns.c:#include <string.h>
./app/sdklib/lwip/core/ipv4/icmp.c:#include <string.h>
./app/sdklib/lwip/core/ipv4/autoip.c:#include <string.h>
./app/sdklib/lwip/core/ipv4/igmp.c:#include "string.h"
./app/sdklib/lwip/core/ipv4/ip_frag.c:#include <string.h>
./app/sdklib/lwip/core/ipv4/ip.c:#include <string.h>
./app/sdklib/lwip/core/ipv4/inet_chksum.c:#include <string.h>
./app/sdklib/lwip/core/dhcp.c:#include <string.h>
./app/sdklib/lwip/core/udp.c:#include <string.h>
./app/sdklib/lwip/core/stats.c:#include <string.h>
./app/sdklib/lwip/core/pbuf.c:#include <string.h>
./app/sdklib/lwip/core/tcp.c:#include <string.h>
./app/sdklib/lwip/core/memp.c:#include <string.h>
./app/sdklib/lwip/core/raw.c:#include <string.h>
./app/sdklib/lwip/api/netbuf.c:#include <string.h>
./app/sdklib/lwip/api/netdb.c:#include <string.h>
./app/sdklib/lwip/api/api_lib.c:#include <string.h>
./app/sdklib/lwip/api/api_msg.c:#include <string.h>
./app/sdklib/lwip/api/sockets.c:#include <string.h>
./app/sdklib/system/mem_manager.c:#include <string.h>
./app/web/netbios.c:#include <string.h>
./app/web/sntp.c:#include <string.h>
 

pvvx

Активный участник сообщества
самому интересно ;)
в коде ссылки есть, а у вас при компиле meSDK ругани нет!.
Значит у вас лично где-то прописаны пути в нетуда. В Eclipse есть малый бардак - частично заражен установками от UDK, но для сборки используется makefile. Есть опции сборки и самой Eclipse, но они на втором плане и могут иметь ошибки...
 

Virtual

New member
блин, у мну то они как раз НЕ цепляются! (выскочили ошибки при сборке вот и пошел искать что там.) в компиляторе под линухом этих хидеров просто нет.

цепляются у всех кто собирает под вендой!
вот и предложил вычистить ненужные упоминания в meSDK, дабы уж наверняка не взялось чего не того.
(список файлов выше)
 

pvvx

Активный участник сообщества
блин, у мну то они как раз НЕ цепляются! (выскочили ошибки при сборке вот и пошел искать что там.) в компиляторе под линухом этих хидеров просто нет.

цепляются у всех кто собирает под вендой!
Либы от самого компилятора должны цепляться автоматом. Если у вас не цепляются - значит плохо собрали GCC.
Смотрим любой xtensa-lx106-elf - там есть include...

И если вы ещё не заметили, в коде везде вставлены русские комменты (с опчатками :)). Это сделано для того, чтобы код не расходился в англоязычную сферу – работает на 100%. Так-же меня совершенно не интересует достижение какого-то совершенства в исходниках проекта - он собирался по мере появления разных SDK и содержит наслоения, совершенно не нужные в текущих условиях. Очищать это нет никакого смысла – ESP8266 не годится для рабочего применения.
 

pvvx

Активный участник сообщества
:D
жестоко, может еще добавить как в Far регистрация? License.xUSSR.txt
Можно. Но "жестокость" тут при чем? Мне вот совсем без разницы на каком языке написано - хоть китайском. Так-же безразлично, как и на каком языке коды - CИ или PAS, или ... А им нет. :)
 

Virtual

New member
В Eclipse есть малый бардак - частично заражен установками от UDK
именно так
в чистом компиляторе папки:
xtensa-lx106-elf\xtensa-lx106-elf\include\ нет
а от UDK у вас там хидеры от сдк патченые Xtensa
(компилятор туда безусловно ломанется если нигде не найдет хидеров)
 

pvvx

Активный участник сообщества
именно так
в чистом компиляторе папки:
xtensa-lx106-elf\xtensa-lx106-elf\include\ нет
а от UDK у вас там хидеры от сдк патченые Xtensa
(компилятор туда безусловно ломанется если нигде не найдет хидеров)
Не заметил никаких патчей. Аналогично и у arm-none-eabi/include. Стандартные либы..
Очень сильно зависят от версии компилятора. Чем больше номер, тем больше там файлов и т.д. Совместимости версий там никогда не было и, видимо, не предвидится.
Возникающие ситуации с новой версией gcc ещё как-то можно исправить, но в низ - никак. (Вы про это хотели сказать? :) )
 
Последнее редактирование:

Virtual

New member
(Вы про это хотели сказать?
в том числе.
эта папка заполняется хидерами от стандартных библиотек, и патчится при сборке SDK....ибо сильно платформо зависимо.
(поиск в этой папке по слову xtensa укажет что меняли)
когда код собирают с nostdlib (а у нас так оно и есть) никакие стандартные либы из папки компилятора не должны линковатся..... а вот хидеры могут прицепится еще как, что может привести к странным глюкам при компиляции.

PS можно в мэйкфайл к опциям
CCFLAGS
добавить
-H в логе сразу станет видно какие хидеры прицеплялись, и главное откуда!
 
Последнее редактирование:

pvvx

Активный участник сообщества
в том числе.
эта папка заполняется хидерами от стандартных библиотек, и патчится при сборке SDK....ибо сильно платформо зависимо.
(поиск в этой папке по слову xtensa укажет что меняли)
когда код собирают с nostdlib (а у нас так оно и есть) никакие стандартные либы из папки компилятора не должны линковатся..... а вот хидеры могут прицепится еще как, что может привести к странным глюкам при компиляции.
Т.е. вы хотите сказать, что в linux не сделать так:
Код:
E:\ESP8266\tst\Web_Base>mingw32-make.exe -s clean

E:\ESP8266\tst\Web_Base>mingw32-make.exe -s all
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libgdbstub.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libaddmmain.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/lib80211add.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libaddmphy.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libaddpp.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libaddwpa.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/liblwipapi.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/liblwipapp.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/liblwipipv4.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/liblwipcore.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/liblwipnetif.a
c:\Espressif\xtensa-lx106-elf\bin\xtensa-lx106-elf-ar.exe: creating .output/eagle/lib/liblwip.a
c:\Espressif\xtensa-lx106-elf\bin\xtensa-lx106-elf-ar.exe: creating .output/eagle/lib/libsdk.a
c:\Espressif\xtensa-lx106-elf\bin\xtensa-lx106-elf-ar.exe: creating ../../lib/libsdk.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libuser.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libdriver.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libmdbtcp.a
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libweb.a
------------------------------------------------------------------------------
   Section|                   Description| Start (hex)|   End (hex)|Used space
------------------------------------------------------------------------------
      data|        Initialized Data (RAM)|    3FFE8000|    3FFE838C|     908
    rodata|           ReadOnly Data (RAM)|    3FFE838C|    3FFE8BC0|    2100
       bss|      Uninitialized Data (RAM)|    3FFE8BC0|    3FFEEC40|   24704
      lit4|     Uninitialized Data (IRAM)|    40105814|    4010645C|    3144
      text|          Uncached Code (IRAM)|    40100000|    40105814|   22548
irom0_text|             Cached Code (SPI)|    40207000|    40240777|  235383
------------------------------------------------------------------------------
Entry Point : 4010013C call_user_start()
Total Used RAM : 53404
Free IRam : 7076 or 23460 (option 48k IRAM)
Free Heap : 54208
Total Free RAM : 77668
------------------------------------------------------------------------------
Add rapid_loader...
0+1 records in
0+1 records out
176 bytes (176 B) copied, 0 seconds, Infinity B/s
50+0 records in
50+0 records out
25600 bytes (26 kB) copied, 0 seconds, Infinity B/s
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libmain.a
   Section|                   Description| Start (hex)|   End (hex)|Used space
------------------------------------------------------------------------------
      data|        Initialized Data (RAM)|    3FFFDF60|    3FFFDFB0|      80
    rodata|           ReadOnly Data (RAM)|    3FFFDFB0|    3FFFE0BC|     268
       bss|      Uninitialized Data (RAM)|    3FFFE0C0|    3FFFE0F8|      56
      lit4|     Uninitialized Data (IRAM)|    40107478|    40107478|       0
      text|          Uncached Code (IRAM)|    40106600|    40107478|    3704
irom0_text|             Cached Code (SPI)|    40210000|    40210000|       0
------------------------------------------------------------------------------
Entry Point : 40106B44 ovl_init()
Total Used RAM : 4108
Free IRam : 29064 or 45448 (option 48k IRAM)
Free Heap : 81516
Total Free RAM : 126964
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libmain.a
   Section|                   Description| Start (hex)|   End (hex)|Used space
------------------------------------------------------------------------------
      data|        Initialized Data (RAM)|    3FFFDF60|    3FFFDF60|       0
    rodata|           ReadOnly Data (RAM)|    3FFFDF60|    3FFFE04C|     236
       bss|      Uninitialized Data (RAM)|    3FFFE050|    3FFFE058|       8
      lit4|     Uninitialized Data (IRAM)|    40107124|    40107124|       0
      text|          Uncached Code (IRAM)|    40106600|    40107124|    2852
irom0_text|             Cached Code (SPI)|    40210000|    40210000|       0
------------------------------------------------------------------------------
Entry Point : 40106D5C ovl_init()
Total Used RAM : 3096
Free IRam : 29916 or 46300 (option 48k IRAM)
Free Heap : 81676
Total Free RAM : 127976
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libmain.a
   Section|                   Description| Start (hex)|   End (hex)|Used space
------------------------------------------------------------------------------
      data|        Initialized Data (RAM)|    3FFFDF60|    3FFFDF60|       0
    rodata|           ReadOnly Data (RAM)|    3FFFDF60|    3FFFDF60|       0
       bss|      Uninitialized Data (RAM)|    3FFFDF60|    3FFFDF60|       0
      lit4|     Uninitialized Data (IRAM)|    40106BB8|    40106BB8|       0
      text|          Uncached Code (IRAM)|    40106600|    40106BB8|    1464
irom0_text|             Cached Code (SPI)|    40210000|    40210000|       0
------------------------------------------------------------------------------
Entry Point : 40106898 ovl_init()
Total Used RAM : 1464
Free IRam : 31304 or 47688 (option 48k IRAM)
Free Heap : 81920
Total Free RAM : 129608
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libmain.a
   Section|                   Description| Start (hex)|   End (hex)|Used space
------------------------------------------------------------------------------
      data|        Initialized Data (RAM)|    3FFFDF60|    3FFFDF60|       0
    rodata|           ReadOnly Data (RAM)|    3FFFDF60|    3FFFDF94|      52
       bss|      Uninitialized Data (RAM)|    3FFFDF98|    3FFFDFA8|      16
      lit4|     Uninitialized Data (IRAM)|    40106878|    40106878|       0
      text|          Uncached Code (IRAM)|    40106600|    40106878|     632
irom0_text|             Cached Code (SPI)|    40210000|    40210000|       0
------------------------------------------------------------------------------
Entry Point : 4010683C ovl_init()
Total Used RAM : 700
Free IRam : 32136 or 48520 (option 48k IRAM)
Free Heap : 81852
Total Free RAM : 130372
.... <--- часть пришлось удалить - не лезает в сообщение --->
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libmain.a
   Section|                   Description| Start (hex)|   End (hex)|Used space
------------------------------------------------------------------------------
      data|        Initialized Data (RAM)|    3FFFDF60|    3FFFDF60|       0
    rodata|           ReadOnly Data (RAM)|    3FFFDF60|    3FFFE324|     964
       bss|      Uninitialized Data (RAM)|    3FFFE328|    3FFFE328|       0
      lit4|     Uninitialized Data (IRAM)|    40106E98|    40106E98|       0
      text|          Uncached Code (IRAM)|    40106600|    40106E98|    2200
irom0_text|             Cached Code (SPI)|    40210000|    40210000|       0
------------------------------------------------------------------------------
Entry Point : 40106E6C ovl_init()
Total Used RAM : 3164
Free IRam : 30568 or 46952 (option 48k IRAM)
Free Heap : 80956
Total Free RAM : 127908
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libmain.a
   Section|                   Description| Start (hex)|   End (hex)|Used space
------------------------------------------------------------------------------
      data|        Initialized Data (RAM)|    3FFFDF60|    3FFFDF60|       0
    rodata|           ReadOnly Data (RAM)|    3FFFDF60|    3FFFE038|     216
       bss|      Uninitialized Data (RAM)|    3FFFE038|    3FFFE040|       8
      lit4|     Uninitialized Data (IRAM)|    40106CE0|    40106CE0|       0
      text|          Uncached Code (IRAM)|    40106600|    40106CE0|    1760
irom0_text|             Cached Code (SPI)|    40210000|    40210000|       0
------------------------------------------------------------------------------
Entry Point : 40106BF8 ovl_init()
Total Used RAM : 1984
Free IRam : 31008 or 47392 (option 48k IRAM)
Free Heap : 81696
Total Free RAM : 129088
При этом директорий "C:\Espressif\ESP8266_SDK" стерт.
Что тут сказать - фиговая у вас операционная система :)
update Makefiles · pvvx/esp8266web@7c005fd · GitHub
 
Последнее редактирование:

pvvx

Активный участник сообщества
когда код собирают с nostdlib (а у нас так оно и есть) никакие стандартные либы из папки компилятора не должны линковатся..... а вот хидеры могут прицепится еще как, что может привести к странным глюкам при компиляции.
Скажите это исходникам LwIP... :)
И стандартные либы уже включены в коды ROM-BIOS и прочие части либ. Если это не использовать = прошивка толстеет на десятки дублей процедур.
 

Virtual

New member
что в linux не сделать так:
легко ;) но при условии что в meSDK чуток убрано лишнее

но если вы сотрете(переименуете) у себя
C:\Espressif\xtensa-lx106-elf\xtensa-lx106-elf\include
то так уже не соберете пока не вычистите упоминания 3х хидеров (по факту не нужных)
и не решите вопрос с time.h (нужный для NTP)

И стандартные либы уже включены в коды ROM-BIOS и прочие части либ.
части да, но не весь набор ж :) вплоть до вендового (или линухового) загрузчика ;).
после nostdlib кодер уж сам решает что ему впихнуть а что нет но уже ручками а не в один клик.
 

Вложения

  • 24.3 KB Просмотры: 2

pvvx

Активный участник сообщества
легко ;) но при условии что в meSDK чуток убрано лишнее

но если вы сотрете(переименуете) у себя
C:\Espressif\xtensa-lx106-elf\xtensa-lx106-elf\include
то так уже не соберете пока не вычистите упоминания 3х хидеров (по факту не нужных)
и не решите вопрос с time.h (нужный для NTP)
Легко, без правки кодов LwIP, с новыми gcc не выйдет. Будете вписывать условия - если gcc > такой-то версии, то ... :)
 

pvvx

Активный участник сообщества
Неа. Тут у вас глобальная ошибка. Коды либ и их хидеры надо от libc_RC-2010.1 от Xtensa Xplorer-3.0.1 - это коды в ROM-BIOS. Часть кодов стандартных либ в закрытых либах китайцев - уже от другой версии Xtensa Compiler Version 11.0.2.20150501312885. И т.к. нет исходников и даже хидеров, то это всё сливается в некий такой бардак .... Поиграться потянет, но не для рабочих версий.
libmgcc.a и была вырезана как наиболее совместимая с данным бардаком. К ней и надо инклуды её версии, а не вашей. Из неё удалены функции, которые уже сидят в ROM-BIOS, чтобы линковщику было проще...
Так-же оптимизация по указателям со смещением перенесена с компилятора на линковшик - финт ушами, т.к. данной оптимизации у не коммерческого gcc варианта до сих пор нет.
По этому проект и имеет в своем названии приставку - "свалка" :)
CHERTS тут не при чем - он туда и в такую глубь не лезет. Это более к представителю из поддержки Xtensa abi - он ползает тут :) и у него другие заботы - как бы вписаться в историю, а не как сделать нормальную версию компилятора.
 
Последнее редактирование:

Virtual

New member
мдяя бардак, тоесть "свалка"

PS если все пойдет нормально то надеюсь допаять на работе завтра, свой модуль 12F и потестить это чудо на живую.
хотелось б сказать что с виду не все так страшно, но пока на железе не проверю - не скажу.
 

pvvx

Активный участник сообщества
мдяя бардак, тоесть "свалка"

PS если все пойдет нормально то надеюсь допаять на работе завтра, свой модуль 12F и потестить это чудо на живую.
хотелось б сказать что с виду не все так страшно, но пока на железе не проверю - не скажу.
А разве есть другие варианты? Espressif не дает исходного кода и компилятора. Дают огрызок, неизвестно для чего. Это как к разному ядру линуха надо разные инклуды и прочее… Но дети то на этом играют и даже какие-то проекты типа Arduino лепят, что-то "портируют" и им пофиг – главное то у них в другом – вечерние блоги и прочее :)
 

pvvx

Активный участник сообщества
В режиме клиента, при отправке на максимальной скорости обнаружил пропуск пронумерованных пакетов, когда происходит событие [TCP Previous segment not captured], иногда происходит смещение snd_buf на разряд. Нашел исправление, пропуски прекратились:
lwip-1.4.1 содержит то-же самое. RE: [lwip-users] Bug in snd_buf calculation
 

pvvx

Активный участник сообщества
2006 год... круто...
lwip-1.4.1 - 2012 и данных поправок нет. Наверно исправлено в другом месте.
А что такого - 10 лет всего. Я в web-свалку делал и копипаст со своих кодов и 2000-го года, если не позже.. :)
 
Последнее редактирование:
Сверху Снизу