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

Общие баги/глюки/проблемы в пакете Sming

AnonymUser

New member
знаний и опыта...с эклипсом как то давно не сложилось
но не суть же чем шить,если бинарники собраны без ошибок и шьется без ошибок?
 

pvvx

Активный участник сообщества
https://github.com/anakod/esp-lwip/blob/esp8266-1.4.1/our/eagle_lwip_if.c имеет 2 ошибки-недочета.
Не сохраняет state->myif = myif, а так-же адрес queue (обоих веток - там одна для AP, другая для ST), похоже использующийся при закрытии softap для освобождения памяти (пока не найден где используются, т.к. берутся по смещению...).
Короче пока ваш OpenLwIP неполноценен и несовместим с примененным SDK :(
Ещё китайцы изменили конфиг LwIP. Что-то вроде выставили опцию LWIP_AUTOIP или LWIP_ARP, но переписали netif_set_link_up() добавив etharp_request() и т.д........
Т.е. размер структуры и поля struct netif поехали, по сравнению с исходниками из SDK 0.9.4 к которым адаптирован ваш OpenLwIP.
Используйте китайский liblwip.a с выкинутыми лишними частями -
newlwip.bat:
Код:
del libmlwip.a
md lwip.lib
cd lwip.lib
C:\Espressif\xtensa-lx106-elf\bin\xtensa-lx106-elf-ar x ..\liblwip.a
C:\Espressif\xtensa-lx106-elf\bin\xtensa-lx106-elf-ar ru ..\libmlwip.a dhcp.o dns.o init.o memp.o netif.o pbuf.o tcp.o tcp_in.o tcp_out.o timers.o udp.o icmp.o igmp.o inet_chksum.o ip.o ip_addr.o etharp.o raw.o
cd ..
rd /q /s lwip.lib
Или ищите что за ??? в данном файле:
 

Вложения

Последнее редактирование:

anakod

Moderator
Команда форума
прошиваю их с помощью nodemcu flasher по соответсвуюющих адресах и все...от примера ничего и не видно...
А выбрать цель "flash" в Eclipse пробовали?

pvvx, спасибо за развернутый комментарий, а в каком случае будет проявляться эта ошибка? Вы уверен что остальные патчи примененные в этой сборке не закрывают проблему? Дело в том что после последнего фикса больше ни одной проблемы связанной с LWIP я не встречал.

UPD Кажется понял, eagle_lwip_if используется опцианально и в моем случае, насколько понимаю, он не задействован (используется Espressif'ский)
https://github.com/kadamski/esp-lwip/blob/esp8266-1.4.1/Makefile-local.mk#L2
 

pvvx

Активный участник сообщества
Вы уверен что остальные патчи примененные в этой сборке не закрывают проблему? Дело в том что после последнего фикса больше ни одной проблемы связанной с LWIP я не встречал.
Я тоже подключал LwIP с другими полями структуры netif. На первый взгляд работало, но на первый... При этом ничего из других либ у меня вообще не включено. Портятся первые пакеты, т.к. это инициализация.
А вам бы надо проверить - не оставляет ли не освобожденную память при включении/отключении AP и ST. По логике указатель на queue запоминается, наверно, но там китайцы, для освобождения памяти при закрытии. При закрытии AP в коде очень много освобождений памяти по указателям фиг знает от куда (берутся по разным смещениям и я этот кусок ещё не разбирал)
Проверить сложно - если приходящие пакеты бьются в пару местах, то большинстве случаев использования их в текущих приложениях это будет не заметно... Всё это дает нестандартные глюки и определить сразу сложно.
 
Последнее редактирование:

Dr. Morg

New member
Обновился до 1.0.7, перестал работать залитый в модуль проект. На старой версии Sming собирается и работает нормально.

После успешной загрузки в модуль в консоли тишина, даже крякозябры не пробегают... Если передёрнуть питание модуля, то немного крякозябр свалится в консоль, но на этом всё заканчивается.
10:15:55 **** Build of configuration Default for project ESP_HTTP_Server ****
mingw32-make.exe -f C:/Sming-master/ESP_HTTP_Server/Makefile flash
ЋиЁЎЄ : ЌҐ г¤ Ґвбп ©вЁ Їа®жҐбб "termite.exe".
c:/Espressif/utils/esptool.exe -p COM2 -b 115200 write_flash 0x00000 out/firmware/eagle.flash.bin 0x9000 out/firmware/eagle.irom0text.fs.bin
Entering bootloader...
Connecting...
Erasing flash...
head: 10 ;total: 10
erase size : 20480

Writing at 0x00000000... (2 %)
Writing at 0x00000400... (5 %)
Writing at 0x00000800... (8 %)
Writing at 0x00000c00... (10 %)
вырезано
Writing at 0x0003fc00... (100 %)

Leaving...

10:16:27 Build Finished (took 32s.36ms)
 

Dr. Morg

New member
@anakod,
eagle.flash.bin - 36,9 КБ (37 840 байт)
eagle.irom0text.bin - 203 КБ (207 975 байт)
eagle.irom0text.fs.bin - 219 КБ (224 359 байт)
 

JustACat

Moderator
Команда форума
Dr. Morg, makefile не забыли поменять? anakod забыл упомянуть (как мне кажется), что makefile от старой версии Sming не подходит к новой, и собранные и прошитые проекты в таком виде не работают :) Сам с этим столкнулся...
В общем, сравните сами makefile от старой и от новой версии - там несколько различий в параметрах + адрес сдвинут заливки, емнип.
 

Dr. Morg

New member
@JustACat, у меня со старый Makefile даже проект не собрался - вагон ошибок выдал.
Подсунул Makefile из нового, проект стал компилироваться, но после загрузки в модуль - тишина... :(
 

JustACat

Moderator
Команда форума
Dr. Morg, ну, нужно чтобы все по чистому было, может какие хвосты от старого остаются (clean делали)? Что-то пересекается? Может UDK старый (а с ним и SDK)?

Update: Кстати, а может UDK новый? =) У меня собирается (и работает) все на UDK предпоследнем... На последнем еще не пробовал...
 
Последнее редактирование:

JustACat

Moderator
Команда форума
Dr. Morg, последний раз прямо вчера. 095 уже сильно устарела... Там спор уже между 1.0.1 бетой и не бетой...
 

Dr. Morg

New member
@JustACat, месяц всего прошёл, как я ставил Espressif-ESP8266-DevKit-v2.0.0-x86 :eek::)
Обновляюсь до последней версии, похоже, в этом и причина всех бед :)
 

Dr. Morg

New member
@JustACat, увы, но похоже, что проблема не в UDK/SDK,- после обновления до 2.0.3 всё равно Sming 1.0.7 не работает после загрузки в ESP :(
Собираю в старом Sming,- всё загружается и прекрасно работает...
 

anakod

Moderator
Команда форума
Dr. Morg, похоже что первый файл слишком большой и не влазит в секцию iram. Вы не заняли всю память лишними IRAM_ATTR? Что в самом коде?
 

Dr. Morg

New member
@anakod, IRAM_ATTR вообще не использую, в коде веб-сервер и немного JSON.

Ещё я поторопился на счёт "всё загружается и прекрасно работает",- в модуль загружается, да, но модуль после ресета в вечный ребут уходит с новым UDK/SDK и старым Sming:
ets Jan 8 2013,rst cause:4, boot mode:(3,1)

wdt reset
load 0x40100000, len 32328, room 16
tail 8
chksum 0x02
load 0x3ffe8000, len 3416, room 0
tail 8
chksum 0x7a
load 0x3ffe8d60, len 14272, room 0
tail 0
chksum 0x35
csum 0x35
sl+TCP connection
timeout updating: 70 -> 65535
Server timeout updating: 40 -> 90
+TCP connection
timeout updating: 70 -> 65535
Server timeout updating: 40 -> 900
+TCP connect

Station configuration was updated to: CallSF
Set AP configuration in background
Display start
 

Dr. Morg

New member
@anakod, новый UDK и старый Sming, пример Basic Wi-Fi:
Hello friendly world! :)
Set AP configuration in background
Station configuration was updated to: CallSF
mode : sta(18:fe:34:a0:f0:01) + softAP(1a:fe:34:a0:f0:01)
add if0
dhcp server start:(ip:192.168.2.1,mask:255.255.255.0,gw:192.168.2.1)
add if1
bcn 100
READY!
1073691192 1afe1a0f01
AP configuration was updated on system ready event
scandone
scandone
WiFi: , OPEN
WiFi: GuestAP, WPA_WPA2_PSK
WiFi: HP-Print-ef-LaserJet 400 MFP, WPA2_PSK
WiFi: sf, WPA_WPA2_PSK
WiFi: HP-Print-d9-LaserJet 400 MFP, WPA2_PSK
WiFi: RTL8186-default, OPEN
WiFi: CallSF, WPA2_PSK
scan completed: 7 found
reconnect
scandone
reconnect
scandone
reconnect
scandone
reconnect
scandone
reconnect
scandone
reconnect
scandone
reconnect
scandone
reconnect

Update:
UDK 2.0.3 + Sming 1.0.7 этот же пример:
Fatal exception (28):CЎЌ=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x1d44ce7c, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x1d44ce7c, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x1d44ce7c, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x1d44ce7c, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x1d44ce7c, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x1d44ce7c, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x1d44ce7c, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x1d44ce7c, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x1d44ce7c, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x1d44ce7c, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x1d44ce7c, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x1d44ce7c, depc=0x00000000
 
Сверху Снизу