Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Баги/глюки/проблемы в каком-то конкретном примере из пакета Sming

Тема в разделе "Sming Open Source Framework", создана пользователем JustACat, 23 мар 2015.

  1. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.965
    Симпатии:
    1.301
    Не пробовали устранять Open LWIP library, а взять базовый lwip-1.4.0 из IoT SDK 0.9.5 и вырезанной espconn?
     
  2. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    pvvx, хотел, но в таком случае не хватает места в RAM (там совсем уже в притык). Возможно можно поколдовать над секциями оффициальной библиотеки и все получится.
    Хотя, конечно, опенсорс решение было бы лучше :(
     
  3. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Продолжаю проводить тесты.

    С включенным WDT:
    WDT (раскрыть)

    14:10
    14:11
    14:12
    14:13
    14:14
    14:15
    14:16
    14:17
    14:18
    ў„*«P*VЎЎET©«ґҐT«ЄK©ҐµZU+UZЄЄUTўґT[0B]µЄЄ«ЕЄ[15]TQTҐQQ©©jPUU”©µµ*Ґ…ўьZTҐ([15]EЉЄ«ЄQXU%µ(…[14]ЄЄЕ[14]QBЄµЁUU©µµ*±[15]еZTҐ([15]ҐЁЄj*QVUEuў…[14]ЄЄЕV(BЄµЁUQBµ*Y[15]еZTҐЁUQ”TЄj*QVЄҐZV…[14]VЄе
    mode : sta(18:fe:34:9c:4d:3a)
    add if0
    scandone
    0:1
    add 0
    aid 4
    pm open phy_2,type:2 0 0
    cnt

    connected with NetworkName, channel 3
    dhcp client start...
    0:2
    ip:192.168.1.141,mask:255.255.255.0,gw:192.168.1.1
    0:3
    0:4
    0:5
    0:6
    0:7


    С выключенным:
    Disabled WDT (раскрыть)

    14:10
    14:11
    14:12
    14:13
    14:14
    14:15
    14:16
    14:17
    14:18
    14:19
    why 102400 1 877956092 1163908620
    14:20
    14:21
    beacon timeout
    rm match
    pm close 7 0 0/1153914126
    14:22
    14:23
    14:24
    14:25
    14:26
    14:27
    14:28
    14:29
    14:30
    .....
    .....
    19:10
    19:11
    19:12
    19:13
    19:14
    19:15
    19:16
    scandone
    19:17
    add 0
    aid 4
    pm open phy_2,type:2 0 0
    cnt

    connected with NetworkName, channel 3
    dhcp client start...
    19:18
    19:19
    ip:192.168.1.141,mask:255.255.255.0,gw:192.168.1.1
    19:20
    19:21
    19:22
    19:23



    В середине часть выброшена, причем похоже счетчик исправно работал все это время, но в UART ничего не отдавалось, и вообще казалось что модуль завис.
    1. Как такое может быть? Даже теоретически
    2. Есть ли возможность понять что значит "why 102400 1 877956092 1163908620" и др.? Декомпилировать что-нибудь и посмотреть?

    Код тестовой программы. Абсолютный минимум:

    Код (C):
    1. long xtime = 0;
    2. LOCAL void ICACHE_FLASH_ATTR hello_cb(void *arg)
    3. {
    4.     ets_wdt_disable();
    5.     xtime++;
    6.     ets_uart_printf("%d:%d\r\n", xtime / 60, xtime % 60);
    7. }
    8.  
    9. void user_init(void)
    10. {
    11.     system_timer_reinit();
    12.     // Configure the UART
    13.     uart_init((UartBautRate)74880, (UartBautRate)74880);
    14.  
    15.     // Set up a timer to send the message
    16.     // os_timer_disarm(ETSTimer *ptimer)
    17.     os_timer_disarm(&hello_timer);
    18.     // os_timer_setfn(ETSTimer *ptimer, ETSTimerFunc *pfunction, void *parg)
    19.     os_timer_setfn(&hello_timer, (os_timer_func_t *)hello_cb, (void *)0);
    20.     // void os_timer_arm(ETSTimer *ptimer,uint32_t milliseconds, bool repeat_flag)
    21.     os_timer_arm(&hello_timer, DELAY, 1);
    22. }
    23.  
     
  4. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    P.S. Нашел в бинарнике "why %u %u %u %u". Но что туда, блин, передается? И главное когда и зачем это происходит?
    (Это из libpp.a)
     
  5. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Извиняюсь, перечитал и понял что в первый раз не правильно понял. Думал речь про еспресифский бинарник. Весьма хорошая идея!
     
  6. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.965
    Симпатии:
    1.301
    И к этой функции, выводящей why десятки обращений... Пример idb для IDA к SDK 1.0.0
     
  7. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Главная проблема Sming успешно решена, отдельное спасибо pvvx, его совет оказался очень полезен. Последние дни я пошагово изучал различия Open LWIP и оригинального из сборки Эспрессиф и нашел критическое различие приводящее к перезагрузке.
    https://github.com/kadamski/esp-lwip/pull/6

    Проблема с периодической перезагрузкой успешно решена.
     
    Tohakrat, aloika, sharky и 2 другим нравится это.
  8. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.965
    Симпатии:
    1.301
    У Эспрессиф ещё вставлены кривые патчи в LwIP (вышедшие позже выхода базового релиза 1.4.0 и взятые типа с фрорума), которые сначала овобождат память, а потом лезут туда (так их вписал китай-програмер, оставив комент там на китайском). Спасает то, что это не RTOS и нет частых прерываний с перераспределением памяти...
     
  9. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Согласен у них местами вообще непойми что в коде твориться. Если подскажете где это место с патчем, я проверю не попало ли оно случайно в библиотеку Open ESP LWIP.

    Что касается того патча о котором я писал выше - он необходим, потому что в оригинальной реализации таймер банально переполняется через 15 минут и никаких проверок на этот случай не предусмотрено.
     
  10. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.965
    Симпатии:
    1.301
    Они не столь нужные (исправления вроде касаются очень активной работы стека, что у нас не наблюдается). Я так и не понял, что вы называете Open ESP LWIP. По этому ничего конкретного сказать не могу. Если это https://github.com/kadamski/esp-lwip, то различий много т.к. Lwip 1.4.1.

    В последних версиях своих тестов я использую liblwip.a (SDK 1.0.1b1) разобрав, выкинув лишнее (чтобы память RAM не жрало на ненужное) и собрав обратно newlwip.bat:
    Код (Text):
    1. del libmlwip.a
    2. md lwip.lib
    3. cd lwip.lib
    4. C:\Espressif\xtensa-lx106-elf\bin\xtensa-lx106-elf-ar x ..\liblwip.a
    5. @rem delete sockets.o api_lib.o api_msg.o err.o netbuf.o netdb.o netifapi.o tcpip.o def.o mem.o stats.o sys.o sys_arch.o autoip.o inet.o ip_frag.o
    6. @rem замена на свои dhcpserver.o
    7. 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
    8. cd ..
    Работает почему-то тормознее, памяти (RAM) берет больше, чем при исходниках от 0.9.4...
    Для выкидывания espconn надо заткнуть вызов процедуры espconn_init(); в startup() из app_main.c в libmain.a... Просто вписать в свой код void espconn_init(viod) {}.
     
    Последнее редактирование: 9 апр 2015
  11. Климатехник

    Климатехник Читатель

    Сообщения:
    126
    Симпатии:
    11
    В примере Meteo_control при сборке выходит ошибка
    Description Resource Path Location Type
    Method 'prettyPrintTo' could not be resolved configuration.cpp /MeteoControl/app line 67 Semantic Error
     
  12. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    pvvx, да я именно про https://github.com/kadamski/esp-lwip
    Не совсем понял про батник пересборки. Он как-то работает без этих частей или Вы заменяете их своими?

    Климатехник, странно у меня собирается. А Вы где смотрите? Надо смотреть окошко Console, все остальное не важно.
     
  13. Tohakrat

    Tohakrat Новичок

    Сообщения:
    7
    Симпатии:
    4
    В примере DHT22 данные с датчика читаются только если установить work_pin gpio14. Так и не понял почему.
    А вот в примере BMP180 все как в файле Wire.h - gpio2 и gpio0.
    Использую ESP8266-012
     
    Последнее редактирование: 15 апр 2015
  14. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Tohakrat, это крайне странно т.к. я на 14 пине никогда не тестировал, но все работало корректно, примеры проверены на железе.
     
  15. Климатехник

    Климатехник Читатель

    Сообщения:
    126
    Симпатии:
    11
    Вообщем ситуация такова:Тестирую пример HttpServer_Ajax.Было замечено,что буквально каждые 3-4 минуты,модуль перезагружается,тем самым при последующем подключение,присваивается с разным IP адресом,что крайне неудобно каждый раз запускать терминал,что бы посмотреть IP адрес.Тут уже бесуловно надо ему присваивать статический IP.Также иногда при небольшом простое,открытой странице допустим,не выполняются Ajax запросы.Надо иногда перезагрузить страницу,либо поменять частоту процессора.
     
    Последнее редактирование: 18 апр 2015
  16. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Нужен полный лог. Тестируется стандартный пример или что-то изменено? (у меня подобных проблем не наблюдается)

    Очень странно, DHCP должен привязать выбранный IP к этому MAC адресу и использовать его повторно. Причины смены IP вероятно в роутере.
    Статический IP добавим.
     
  17. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.965
    Симпатии:
    1.301
    Дополняется только dhcpserver.o. Остальные просто пустые в сборке либы.
     
  18. Климатехник

    Климатехник Читатель

    Сообщения:
    126
    Симпатии:
    11
    Тестируется стандартный пример,ничего не изменял.
    Вот лог когда идет обращение к серверу
    лог (раскрыть)

    ~TCP connection
    onAccept state: 0 K=0
    Free heap size=22976, K=0
    +TCP connection
    timeout updating: 70 -> 90
    Tcp Server onClient
    -TCP connection
    onReadyToSendData: 3
    path=/ajax/input
    Host === 192.168.1.104
    parsed
    Request: GET, nodata
    TCP received: 476 bytes
    onReadyToSendData: 1
    response sendHeader
    TCP connection send: 17 (17)
    TCP connection send: 19 (19)
    TCP connection send: 32 (32)
    TCP connection send: 2 (2)
    response sendBody
    TCP connection send: 66 (66)
    Stream completed
    TCP connection closing
    ~TCP connection
    -TCP connection

    А это когда нет обращения к серверу,сокет закрыт,тоесть браузер закрыт,переодически появляется это,замечено что буквально каждые 5 минут:
    Лог (раскрыть)

    connected with TP-LINK, channel 3
    dhcp client start...
    ip:192.168.1.104,mask:255.255.255.0,gw:192.168.1.1
    rm match
    reconnect
    scandone
    add 0
    aid 4
    cnt

    connected with TP-LINK, channel 3
    dhcp client start...
    ip:192.168.1.104,mask:255.255.255.0,gw:192.168.1.1
     
    Последнее редактирование: 20 апр 2015
  19. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Судя по логу похоже что на это время теряется WiFi соединение. Но почему это может происходить? На других примерах подобного вывода в лог не наблюдается?
     
  20. Климатехник

    Климатехник Читатель

    Сообщения:
    126
    Симпатии:
    11
    Странно то,что пока страница открыта,ни каких разъединений нет,работает часами.Как только закрываю страницу,ждет ровно 5 минут и начинается перезагрузка
     

Поделиться этой страницей