• Система автоматизации с открытым исходным кодом на базе 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-го года, если не позже.. :)
 
Последнее редактирование:
Сверху Снизу