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

anakod

Moderator
Команда форума
Более того, реализация где-то в закрытых либах Espressif. Нам интересен именно вызов функции.
Не поднимаю что может отличаться и в чем здесь проблема. Может в UDK не последняя версия библиотеки user_interface?
 

sharky

New member
Более того, реализация где-то в закрытых либах Espressif. Нам интересен именно вызов функции.
Не поднимаю что может отличаться и в чем здесь проблема. Может в UDK не последняя версия библиотеки user_interface?
Может, только вот саму эту библиотеку я как-то и не могу найти, только хидеры, видимо где-то в бинарниках спрятана.
Нужно будет завтра у CHERTS спросить, возможно он знает :)

А у тебя оно без ошибок пересобирается?
 

sharky

New member
С хардкодовой частотой собралось все, завтра попробую чего-нить запилить на сминге, спасибо за помощь.
 

shaman1010

Member
В System.cpp вызов со стороны сминга, а реализация должна быть где-то на низко-низком уровне в сдк эспрессифа
Судя по всему об этом.

Каким образом увидеть в FTP-сервере остальные 15,5MB (flash - 128я)?
 
Последнее редактирование:

anakod

Moderator
Команда форума
undefined reference to `system_get_cpu_freq'
Сделал комит, изменил вызов на более старую версию функции. Просьба проверить помогло ли?

Каким образом увидеть в FTP-сервере остальные 15,5MB (flash - 128я)?
Может быть кто-нибудь поможет в этом вопросе? Просто у меня только стандартная флеш. @pvvx, есть ли у Вас возможность уделить чуток времени этому вопросу? Интересно добиться именно корректной работа spiffs, т.е. не просто прямой доступ к флеш памяти.
 
Последнее редактирование:

anakod

Moderator
Команда форума
shaman1010, спасибо! GPIO2 еще не тестил, но тоже постараюсь выяснить причины этой аномалии.
 

aloika

Active member
Пример HttpServer_AJAX:

Запускаю этот пример, из изменений - отключил вывод отладочной информации и изменил частоту опроса на 100 мс.
Периодически происходит wdt reset. Каждые примерно 5 минут.
 

anakod

Moderator
Команда форума
Для того чтобы диагностировать ошибку нужно больше информации. aloika, пробовали ли Вы запустить на больших значениях времени, в том числе оригинальном 400? Что пишется в Serial лог? Постоянно ли время через которое происходит перезагрузка или оно всегда различается?

У меня вроде все работало без сбоев, но на сильно больших интервалах времени пока еще не тестировал.
 

aloika

Active member
Перезагружается минут через 15 при периоде опроса 400 мс. Остальные вопросы пока не выяснил.

В лог пишет следующее:

Код:
Terminal log file
Date: 30.03.2015 - 14:06:19
-----------------------------------------------
sd<0>$Ьџ|<0>„lа<Њlдc|ЏГд›;“cЊc„ыgnџdogњгдc8„‡lrl;lxуoаѓdcgг|м$‡ЗcЊыogз<0>l„‡l`ђo'‡lo;З›Ы'гЊd`8ыoа;Њњњга#gг|„lЗњ#Њуogп<0>З$`ђog‡ln{‡“›g“Ьlxуoа{Њњњга$Њњ#gг|dмЏЋcЊыo'з<0>Џl Ш'ol„l n;‡“ЫgcдЗlsЫ“n#мЏdЊХЃMEM CHECK FAIL!!!
дr+TCP connection
timeout updating: 70 -> 65535
Server timeout updating: 40 -> 90
+TCP connection
timeout updating: 70 -> 65535
Server timeout updating: 40 -> 900
fs.start:40248000, size:

I'm CONNECTED

=== WEB SERVER STARTED ===
10.5.5.138
==============================


 ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x40100000, len 31844, room 16 
tail 4
chksum 0x62
load 0x3ffe8000, len 2536, room 4 
tail 4
chksum 0x5d
load 0x3ffe89f0, len 10704, room 4 
tail 12
chksum 0x27
csum 0x27
;+TCP connection
timeout updating: 70 -> 65535
Server timeout updating: 40 -> 90
+TCP connection
timeout updating: 70 -> 65535
Server timeout updating: 40 -> 900
fs.start:40248000, size:

I'm CONNECTED

=== WEB SERVER STARTED ===
10.5.5.138
==============================


-----------------------------------------------
Date: 30.03.2015 - 14:24:43
 

aloika

Active member
У меня с DHCP вроде нормально (в режиме станции). А перегружается минут через 15, и кажется, что независимо от действий, периодов опроса и пр.
 

Victor

Administrator
Команда форума
У меня тоже перегружается
Часто проблемы со стабильностью прошивки (любой) на ESP8266 связаны с железом. Проверено на собственном опыте.

GPIO подключенные напрямую (без резисторов), питание от "китайских свистков" неминуемо приводит к нестабильности работы, хоть и позволяет что-то запустить, попробовать, т.е. для беглой оценки работоспособности вполне сойдет.

Попробуйте еще раз посмотреть на свое устройство именно со стороны железа. Если вы что-то найдете и вам удастся таким образом устранить причину, то обязательно сообщите об этом - это поможет другим избежать подобных проблем в будущем.
 

anakod

Moderator
Команда форума
Можете еще попробовать для теста выключить WatchDog:
System.onReady(ets_wdt_disable);
 

shaman1010

Member
Если вы что-то найдете и вам удастся таким образом устранить причину, то обязательно сообщите об этом - это поможет другим избежать подобных проблем в будущем.
shaman1010, спасибо! GPIO2 еще не тестил, но тоже постараюсь выяснить причины этой аномалии.
Повозился сегодня чуток. Нашел и устранил:
Чтобы не дергалось напряжение на GPIO2 (да и на любом другом) - нужно CH_EN подтягивать к плюсу через резистор (я поставил 10кОм). Затрагивалось на разных форумах неоднократно, но последствия прямого подключения нигде не мелькали. Сейчас можно ссылаться хотя бы сюда. Заметить можно не на каждом типе модулей, но подтяжка через токоограничивающий резистор необходима. Иначе получаем баг на ровном месте.
Думаю подключение CH_EN через резистор стоит куда-то на видное место поместить.
 
Последнее редактирование:

aloika

Active member
Про перезагрузку во время выполнения примера HttpServer_AJAX:
Дополнил веб-страничку счетчиком времени с момента перезапуска (uptime). Теперь остается только сидеть и наблюдать, когда перезагрузится.
И вот что выяснилось - перезагружается всегда четко в момент, когда uptime достигает значения 14 : 19,1 (мин:сек) ! Так что это не случайный процесс, не с питанием связано точно.
Большая просьба - попробуйте установить прилагаемую ниже страничку, проверьте uptime, что получится?

UPD: еще и application.cpp выложил, я же его тоже менял.
Там сейчас выключен wdt, его надо включить - закомментировать строчку
System.onReady(ets_wdt_disable);

UPD: Если отключить watchdog, то на значении 14:19 модуль как-то притормаживает и некоторое время не отвечает на запросы, а потом, если обновить страничку, снова работает, как ни в чем ни бывало. А потом, на 28:38 (т.е. двойное время) окончательно виснет.

UPD: Не виснет! Вернее не окончательно. Повисел минуты две и снова считает...

UPD: Досчитал до 31 минуты и повис. Обновление странички не помогает.

UPD: Повисел минуты две, отвис. Дальше считает.
 

Вложения

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

anakod

Moderator
Команда форума
Наверное надо попробовать у китайцев узнать подробности на их форуме. Я ничего подобного в прошивку точно не закладывал :)

Т.е. без ватчдога наблюдается эффект некоторого подвисания? Это может быть объяснением почему срабатывает ватчдог.
Что в этот момент пишется в лог?
 

aloika

Active member
anakod, да, без вотчдога модуль подвисает на несколько минут, потом работает дальше. Его системное время сохраняется, продолжает прибавляться после "отвиса". Думаю да, вотчдог именно поэтому и срабатывает. Первый подвис (или перезагрузка по вотчдогу, если он включен) всегда на значении 14 мин. 19,1 сек.

В уарт при отключенном выводе debag-сообщений при подвисе не выводится ничего. Со включенными сообщениями не пробовал, могу завтра попробовать.

И еще - на прошивке от pvvx ничего такого не наблюдается, ни подвисаний, ни перезагрузок, полдня гонял.
 

anakod

Moderator
Команда форума
Я нашел причину перезагрузки. Хотя правильнее, к сожалению, сказать нашел не причину, а факторы которые необходимы для ее проявления.
system_timer_reinit() + Open LWIP library

Если хотя бы одно из условий не соблюдается то перезагрузки не происходит. Т.е. похоже в этой реализации LWIP есть какая-то ошибка (что-то не реализовано?) и эта часть вызывается через 15 минут только если переключиться на быстрые таймеры, после чего WatchDog перезагружает модуль. Пытаюсь понять в чем может быть дело. Есть ли у кого-нибудь идеи?
 
Сверху Снизу