• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

Urbas81

Member
Да с этим проблем нет, это ведь обычные пользовательские переменные, а swap работает через регистр с адресом 0x3ff00028, попытался напрямую записать через команды установки регистра, но не понял назначения всех переменных, что такое смещение к примеру, и нужно ли там еще маски накладывать?
 

aloika

Active member
Pvvx, скачал сейчас сборку-"свалку", которая на github. Прошил. Есть проблема - при выставлении шифрования точки доступа в WPA_PSK происходит перезагрузка.
Прошил всё как есть, поменял только USERFADDR = 0x80000 в Makefile.

В прежних версиях такого не было.

При попытке подключиться к точке доступа - снова перезагрузка:

Код:
WiFi event(7): Probe Request (MAC:08:57:00:10:e2:91, RSSI:-55)
WiFi event(7): Probe Request (MAC:08:57:00:10:e2:91, RSSI:-56)
WiFi event(7): Probe Request (MAC:08:57:00:10:e2:91, RSSI:-53)
add 1
aid 1
station: 08:57:00:10:e2:91 join, AID = 1
WiFi event(5): Station[1]: 08:57:00:10:e2:91 join, AID = 1, 0
MDB: init port 502
SNTP: start
WEB: init port 80
NetBIOS init, name 'AESP8266'
怘▒▒▒▒▒▒▒
▒f▒▒▒▒▒▒x
▒▒▒▒▒▒▒▒f▒f▒▒▒fÆ~▒▒▒▒▒▒`?▒▒▒`<f<▒0▒x
Ϙ33f▒▒▒怘▒▒▒▒<`<▒▒▒
▒▒▒▒▒▒▒<<fÆ▒▒▒▒<▒▒▒▒▒▒▒▒▒03`▒f▒f▒▒▒▒▒Ø03`▒▒▒▒▒▒f▒f▒▒
▒▒~▒▒03`▒▒▒f▒f▒▒
▒▒▒▒▒03▒

meSDK 2.0.0
Reset event: SoftWdt
Fatal exception (4):
epc1=0x4023092e, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x0                                                      0000000

Simple WEB version: 0.1.4
Found free IRAM: base: 0x40105814, size: 10220 bytes
System memory:
data  : 0x3ffe8000 ~ 0x3ffe838c, len: 908
rodata: 0x3ffe838c ~ 0x3ffe8bc0, len: 2100
bss   : 0x3ffe8bc0 ~ 0x3ffeec40, len: 24704
heap  : 0x3ffeec40 ~ 0x3fffc000, len: 54208
bssi  : 0x40105814 ~ 0x4010645c, len: 3144
free  : 0x4010645c ~ 0x40108000, len: 7076
Start 'heap' size: 53960 bytes
Set CPU CLK: 160 MHz
sleep disable

Disk init: 91 files, addr = 0x00080000
mode : sta(18:fe:34:d6:e8:56) + softAP(1a:fe:34:d6:e8:56)
add if0
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100

SDK Init - Ok
Current 'heap' size: 50328 bytes
Run ini file: protect/init.ini
of1[protect/init.ini] [mdbfini=protect/mdbini.bin]
of255[protect/mdbini.bin] protect/mdbini.bin - not found.
[sys_ram0x60000f00=0x48]
H[sys_ram0x60000f00=0x65]
e[sys_ram0x60000f00=0x6c]
l[sys_ram0x60000f00=0x6c]
l[sys_ram0x60000f00=0x6f]
o[sys_ram0x60000f00=0x21]
!cf1 WiFi_set(0x0000ffff)=0x00008000
WiFi mode:3 phy:3 dhcp:1/1
AP:ESP8266[7] hiden(0) psw:[0123456789] au:3 chl:1 maxcon:4 beacon:100
ip:192.168.4.1 gw:192.168.4.1 msk:255.255.255.0 mac:1a:fe:34:d6:e8:56
DHCP ip:192.168.4.2..192.168.4.10
ST:[HOMEAP] psw:[0123456789] b:0 00:24:8c:50:c1:bf ac:0
ip:0.0.0.0 gw:0.0.0.0 msk:0.0.0.0 mac:18:fe:34:d6:e8:56
sleep:0, rect:30, maxtpw:75, sthn:[ESP_D6E856]
WiFi event(7): Probe Request (MAC:00:0c:e7:14:3f:a4, RSSI:-69)
WiFi event(7): Probe Request (MAC:00:0c:e7:14:3f:a4, RSSI:-68)
WiFi event(7): Probe Request (MAC:00:0c:e7:14:3f:a4, RSSI:-73)
WiFi event(7): Probe Request (MAC:00:0c:e7:14:3f:a4, RSSI:-74)
WiFi event(7): Probe Request (MAC:08:57:00:10:e2:91, RSSI:-51)
WiFi event(7): Probe Request (MAC:08:57:00:10:e2:91, RSSI:-50)
WiFi event(7): Probe Request (MAC:08:57:00:10:e2:91, RSSI:-50)
WiFi event(7): Probe Request (MAC:08:57:00:10:e2:91, RSSI:-51)
WiFi event(7): Probe Request (MAC:b8:64:91:59:18:4c, RSSI:-79)
WiFi event(7): Probe Request (MAC:b8:64:91:59:18:4c, RSSI:-81)
WiFi event(7): Probe Request (MAC:b8:64:91:59:18:4c, RSSI:-82)
W
Станция работает.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Pvvx, скачал сейчас сборку-"свалку", которая на github. Прошил. Есть проблема - при выставлении шифрования точки доступа в WPA_PSK происходит перезагрузка.
Прошил всё как есть, поменял только USERFADDR = 0x80000 в Makefile.

В прежних версиях такого не было.
Что-то там зарылось. У меня выскакивает "перезагруз" при соединении к AP на ESP... Пока не знаю что это. Вчера заметил :)
Fatal exception (4):
epc1=0x4022f978, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
Только у меня meSDK 1.5.4
------
Поглядел - вылетает в процедуре rijndaelEncrypt().
Вы что нибудь об ней знаете? Я - нет. :)
После перезагрузки у меня соединяется с AP ESP. И далее постоянно соединяется-разъединяется сколько угодно раз.
А вот если в винде стереть профиль, то при соединении с вводом пароля модуль опять вылетает на протектед в rijndaelEncrypt().
Если пытаться соединиться с телефона, то адрес протектеда другой, но в той-же процедуре :)
Походу что-то не то вращается в процедуре aes_wrap() и в ней aes_encrypt_init() дает неверный параметр для aes_encrypt() вызывающей rijndaelEncrypt(). Это всё закрытые потроха Espressif и копаться там нет желания.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Жуть какая... :)
Ну будем сидеть пока что на на SDK 1.5.2. Там это работает по крайней мере.
В Arduino вообще стоит секретная версия SDK, помеченная как (строки из libmain.a):
SDK ver: %s compiled @ Apr 18 2016
1.5.3(aec24ac9)
Но не совпадает с esp8266_nonos_sdk_v1.5.3_16_04_18_0.zip
ни с esp8266_nonos_sdk_v1.5.3.3_patch_20160704_0.zip т.к. там вырезан mem_manager.o и перепакована
Написано что версия 1.5.3_16_04_18

Версия 1.5.4 отличается от 2.0.0 только лишними вставками ненужного кода.

Проблема в либах или какой другой косяк я не знаю. ESP8266 уже никто не пользуется. Остались только Aruin-шики, лепящие мигалки светодиодами на старой SDK...
 
Последнее редактирование:

aloika

Active member
Проблема в либах или какой другой косяк я не знаю. ESP8266 уже никто не пользуется. Остались только Aruin-шики, лепящие мигалки светодиодами на старой SDK...
Был бы эквивалент "свалки" на RTL00 - вот это было бы здорово. Но пока ничего такого нет, приходится использовать ESP8266. С той SDK, которая хоть как-то работает.
 

pvvx

Активный участник сообщества
Был бы эквивалент "свалки" на RTL00 - вот это было бы здорово. Но пока ничего такого нет, приходится использовать ESP8266. С той SDK, которая хоть как-то работает.
Починил c версией 2.0.0_patch1. Что-то надо было в либе, но линкер не ругался. Надоел(и) этот SDK, DDK и прочие глюки-фичи в GCC к ESP8266. На ARM всё пашет Ok, а тут половины нужного не работает...

Вроде вышла более менее стабильная версия. Проверяем и ... если ничего не найдется, фиксану и заморожу проект.
--------
C RTL непонятки с официалами - не хочется совсем рассинхронизироваться.
Совсем не устраивает их разметка OTA и прочее размещение в Flash блоков.
Файловую систему на SD или во внешнюю Flash, или во внутреннюю?
2 варианта уже работает.
Установки WiFi так и не сведены в единый блок. Для этого надо выкинуть очень много - высвободится куча памяти. Но этим надо заниматься, а на просторах инет пока глухо - нет никаких движений и нечего даже поглядеть. Мне это одному, да для всех совершенно не интересно. Себе уже почти доделал, что надо. Уже другие проекты на RTL леплю, но они народу нафиг не нужны...
 
Последнее редактирование:

aloika

Active member
WPA2 - работает нормально.
Не работает. В последней версии "свалки".

Вроде вышла более менее стабильная версия. Проверяем и ... если ничего не найдется, фиксану и заморожу проект.
Перезагрузки не наблюдаются, но все равно так жить нельзя. А именно:

Первое включение - ОК, AP - open. Ставлю шифрование WPA2_PSK, подключаюсь к сети с шифрованием.

Код:
WiFi event(6): Station[0]: 08:57:00:10:e2:91 leave, AID = 1, 0
MDB: close
WEB: close
add 1
aid 1
station: 08:57:00:10:e2:91 join, AID = 1
WiFi event(5): Station[1]: 08:57:00:10:e2:91 join, AID = 1, 0
MDB: init port 502
tcpsrv: not new tcp!
NetBIOS init, name 'AESP8266'
err already associed!
station: 08:57:00:10:e2:91 leave, AID = 1
rm 1
WiFi event(6): Station[0]: 08:57:00:10:e2:91 leave, AID = 1, 0
MDB: close
tcpsrv: NULL pointer!
max connection!
max connection!
add 1
aid 1
station: 08:57:00:10:e2:91 join, AID = 1
WiFi event(5): Station[1]: 08:57:00:10:e2:91 join, AID = 1, 0
MDB: init port 502
tcpsrv: not new tcp!
NetBIOS init, name 'AESP8266'
 
Последнее редактирование:

pvvx

Активный участник сообщества
Не работает. В последней версии "свалки".
Перезагрузки не наблюдаются, но все равно так жить нельзя. А именно:
Первое включение - ОК, AP - open. Ставлю шифрование WPA2_PSK, подключаюсь к сети с шифрованием.
Ну надо поправить - порт наверно открыт и снова не открывается :)
 

aloika

Active member
Ну надо поправить - порт наверно открыт и снова не открывается :)
Еще сообщение не дописал, а вы уже ответили :)

Да, при изменении шифрования AP до передергивания питания вот такая история, как в логе. Если питание передернуть - то коннектится с установленным шифрованием. Если изменить шифрование - то снова нужно передергивать питание.
 

aloika

Active member
C RTL непонятки с официалами - не хочется совсем рассинхронизироваться.
Совсем не устраивает их разметка OTA и прочее размещение в Flash блоков.
Файловую систему на SD или во внешнюю Flash, или во внутреннюю?
2 варианта уже работает.
Установки WiFi так и не сведены в единый блок. Для этого надо выкинуть очень много - высвободится куча памяти. Но этим надо заниматься, а на просторах инет пока глухо - нет никаких движений и нечего даже поглядеть. Мне это одному, да для всех совершенно не интересно. Себе уже почти доделал, что надо. Уже другие проекты на RTL леплю, но они народу нафиг не нужны...
Мое мнение - файловую систему во внутреннюю флешь. Чтобы модуль был этаким законченным девайсом, вещью в себе с минимумом навесных элементов - и вместе с тем полноценным веб-сервером. SD - это вообще громоздко и дорого получается. Внешняя flash - тоже хороший вариант, но зачем, когда есть внутренняя (и ее для простых применений хватит, наверное).
Установки WiFi - они, конечно, нужны. Но может, начать с малого, только самые основные - а там уж видно будет.
 

pvvx

Активный участник сообщества
Еще сообщение не дописал, а вы уже ответили :)

Да, при изменении шифрования AP до передергивания питания вот такая история, как в логе. Если питание передернуть - то коннектится с установленным шифрованием. Если изменить шифрование - то снова нужно передергивать питание.
Не обязательно. Это балует Windows. MAC и прочее одинаковое и она в конфузе :)
И ещё откройте комент в последних строчках у tcp_srv_con.c у вызова:
tcpsrv_delete_all_act_tcp_pcb();
Мое мнение - файловую систему во внутреннюю флешь.
Работает давно таже самая файловая система что и в web-свалке. Портирован даже spiffs :mad:
Чтобы модуль был этаким законченным девайсом, вещью в себе с минимумом навесных элементов - и вместе с тем полноценным веб-сервером.
Внутренняя Flash мала - 1 Mb всего. На RTL8711AM, RTL8195 всё равно внешняя. Но там кошмар - RAM девать некуда для такого простого приложения :)
SD - это вообще громоздко и дорого получается.
Мирко SD как раз вписывается под размер модуля. Выходит что-то типа плоской коробочки с 4x18x20-ть c чем-то мм :)
SD работает, переделать FAТ драйвер - он там плохо сидит - почистить и склеить с системой. Трансфер с микро SD за 8 мег/c - в одну антенну WiFi всё равно не лезет.
И в RTL всё по DMA - проц тоже не нужен - можно выкунуть :) (полный SDIOH конроллер, до 4-х I2C, 2 x I2S, пару SPI, PCM, UARAT-ы и т.д. - всё по DMA хоть блоками по 1 мегабайт... SDRAM не успевает :) )
 
Последнее редактирование:

aloika

Active member
И ещё откройте комент в последних строчках у tcp_srv_con.c у вызова:
tcpsrv_delete_all_act_tcp_pcb();
Открыл, заработало :) Некоторые мелочи - шифрование WEP не работает (остается OPEN), WPA_PSK - вообще пропадает AP, WPA_WPA2_PSK и WPA2_PSK - нормально. Ну те две первые и не нужны так-то.
 

aloika

Active member
Работает давно таже самая файловая система что и в web-свалке
Это очень здорово! А откроете? а дадите? :)

Внутренняя Flash мала - 1 Mb всего
Ну вот лично мне пока хватит, webfiles.bin у меня занимает 150 кБ.
Но, конечно, если туда напихать сложные web-приложения - 1 Mb мало будет. Ну это уже от задачи зависит.

Мирко SD как раз вписывается под размер модуля. Выходит что-то типа плоской коробочки с 4x18x20-ть c чем-то мм :)
SD работает, переделать FAТ драйвер - он там плохо сидит - почистить и склеить с системой. Трансфер с микро SD за 8 мег/c - в одну антенну WiFi всё равно не лезет.
Это здорово, но цена увеличивается - сама микроСД плюс держатель еще. Ну у кого какие задачи.
 

pvvx

Активный участник сообщества
Это очень здорово! А откроете? а дадите? :)
А толку без общего полного проекта?
Вот WebSw000.zip - различий там от ESP2866 минимум. Совместимость у них в одну сторону - всё что написано на ESP с малыми переделками будет работать на RTL, наоборот - сложнее.
 

aloika

Active member
Еще что заметил - подключаюсь к AP (WPA2_PSK) - через несколько минут бездействия wi-fi связь сама отключается. Нужно снова подключаться. Если открыть страничку с GPIO - там поллинг, вроде связь держится, не отключается. Станция коннект держит независимо от активности.

Дополнение: связь AP отключается буквально минуты через три. На компе Win 10, может, в ней дело. Как было на прежних прошивках - не знаю, вроде не замечал такого.

А толку без общего полного проекта?
Практического - наверное, не особо, посмотреть, поковырять просто...

Спасибо, погляжу :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Еще что заметил - подключаюсь к AP (WPA2_PSK) - через несколько минут бездействия wi-fi связь сама отключается. Нужно снова подключаться. Если открыть страничку с GPIO - там поллинг, вроде связь держится, не отключается. Станция коннект держит независимо от активности.

Дополнение: связь AP отключается буквально минуты через три. На компе Win 10, может, в ней дело. Как было на прежних прошивках - не знаю, вроде не замечал такого.
Это уже давно так. AP выкидывает неактивных клиентов. Китай фича.
Практического - наверное, не особо, посмотреть, поковырять просто...
Спасибо, погляжу :)
Ну часть вы уже наблюдаете в web-свалке. Говорил уже - теперь тестирование идет на RTL и поправки переносятся в ESP.
Скоро различия будут только в надписях старта:
Код:
RTL8195A[Driver]: set group key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4) keyid:2
wifi_indication():WPA/WPA2 handshake done
WiFi connected at start 3506 ms
[FEEP Inf]base seg: 0xfe000 [-1]
[FEEP Inf]write obj is identical, id: 5730 [152]
[FEEP Inf]saved ok
[FEEP Inf]read obj id: 4430[16]
[FEEP Inf]base seg: 0xfe000 [-1]
[FEEP Inf]read ok, faddr: 0xfe0ac, size: 16
Read dhcp_config: mode = 2, ip:0x9701a8c0, msk:0xffffff, gw:0x101a8c0
NetBIOS init, interface 0: 'ARTL871X',  1: 'SRTL871X'
ATTS: Test tcp_srv
Max retry connection 10, time waits 10 & 10, min heap size 14528
TCP_TST: server init on port 80
ATTC: Test tcp_client
TC: Max retry connection 3, time waits 5 & 5, min heap size 14528
srv[64665] 192.168.1.2:12345 [0] start client...
TCP_TST: client init = 0
WIFI initialized
srv[64665] 192.168.1.2:12345 [1] error -10
srv[64665] 192.168.1.2:12345 [1] Waiting next (1) reconnection 5000 ms...
srv[64666] 192.168.1.2:12345 [1] start client...
srv[64666] 192.168.1.2:12345 [1] received, buffer 16 bytes
send 16
srv[64666] 192.168.1.2:12345 [1] received, buffer 32 bytes
send 32
srv[64666] 192.168.1.2:12345 [1] received, buffer 48 bytes
send 48
srv[64666] 192.168.1.2:12345 [1] disconnect
 

aloika

Active member
Это уже давно так. AP выкидывает неактивных клиентов. Китай фича.
Вот так, значит :( ничего себе, фича. Бага какая-то, а не фича. А никак нельзя эту фичу того, убрать? А то очень она мешает...

При выкидывании пишет в лог:
WiFi event(6): Station[0]: 08:57:00:10:e2:91 leave, AID = 1, 5
 
Последнее редактирование:
Сверху Снизу