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

Зависание и сброс по WDT при срабатывании прерывания от GPIO

pvvx

Активный участник сообщества
Вы очевидно не читали документацию на SDK 3.x.x. Верно?
Можете задать этот вопрос разработчикам ESP.
Предполагаю, что разработчики таким образом предотвращают бесконечную перезагрузку.
Скорее всего "разработчики" не знают что есть атрибут weak у процедур С и учить их основам программирования бесполезно.
Вот вы за более чем четыре года шастания здесь так и не освоили "C", что тогда говорить о "разработчиках" в Espressif?
 

x8973

Member

pvvx

Активный участник сообщества
Вы очевидно не читали документацию на SDK 3.x.x.
Предполагаю, что разработчики таким образом предотвращают бесконечную перегрузку.
К чему может привести while(1){} ?
Только к полной неработоспособности устройства.
Прерывания не запрещены. Значит очереди команд переполнятся и вылетит где-то в другом месте, возможно и сбив всякие настройки.

Но самое главное это похоже на вредительство:
Садимся в авто, включаем зажигание, а у него внтуре какая-то ошибка и он сел на while(1){}.
Двери закрыты, руль и педали заблокированы – бесполезны, машина не едет, или так и едет в кювет если в while(1){} попало во время движения.

Это и есть классное запрограммированное поведение устройства от nikolz?

PS: Разгребать детсад от ардуино-головногомозгу в Espressif бесполезно. Пусть так и живут :)
 

x8973

Member
Он есть во всех gcc.
Кто кому стандарт?
Ну уж явно не компилятор задает стандарт языка) То что компилятор не соответствует стандарту - это проблема компилятора, а не стандарта.
Это и есть классное запрограммированное поведение устройства от nikolz?
Это мой код. Точнее даже, код из того примера, который я когда-то давно изучал. Пример, кстати, был из состава SDK.
Любой инструмент надо применять с умом. В данном случае ничего плохого не случится, так как до основной программы дело еще не дошло. В более критичных местах, разумеется, применение такой конструкции будет рискованным.
 

pvvx

Активный участник сообщества
По приведенной вами ссылке:
Я понимаю, это Википедия, и для полной уверенности надо сами стандарты читать.
Прочтите исходники любой стандартной библиотеки для "C". Там этих weak сотни, может и тысячи. :)
А ссылка на вики дана чтобы идентифицировать про что разговор.
 

x8973

Member
Прочтите исходники любой стандартной библиотеки для "C"
Это говорит только о том, что эти "стандартные" библиотеки не соответствуют стандартам языка. Что, разумеется, не делает их хуже или лучше. Просто это стоит учитывать.
 

pvvx

Активный участник сообщества
Ну уж явно не компилятор задает стандарт языка) То что компилятор не соответствует стандарту - это проблема компилятора, а не стандарта.

Это мой код. Точнее даже, код из того примера, который я когда-то давно изучал. Пример, кстати, был из состава SDK.
Любой инструмент надо применять с умом. В данном случае ничего плохого не случится, так как до основной программы дело еще не дошло. В более критичных местах, разумеется, применение такой конструкции будет рискованным.
Как это "В данном случае ничего плохого не случится" - программа не заработает - зависнет и будут вопли на всех форумах - "что я сделал не так" :)
Т.е. отнимет время, энергию и прочие средства у жителей планеты на глупость сочиненную в Espressif.
По этому с ними ныне никто не хочет работать из крупных контор продвигающих товар для IoT.
 

x8973

Member
зависнет и будут вопли на всех форумах - "что я сделал не так"
Специально на такой случай там есть вывод сообщения в уарт)
По этому с ними ныне никто не хочет работать из крупных контор продвигающих товар для IoT.
Как насчет устройств Sonoff? Они на 8266, насколько я знаю.
 

pvvx

Активный участник сообщества
Это говорит только о том, что эти "стандартные" библиотеки не соответствуют стандартам языка. Что, разумеется, не делает их хуже или лучше. Просто это стоит учитывать.
Где стандарт языка "C" и какой "стандарт" вы подразумеваете? Какой-то свой личный?
Такие стандарты меняются со временем и дополняются в зависимости от использования. Это как промышленный стандарт - сводят применимые актуальные на сегодня варианты в стандарт.
 

pvvx

Активный участник сообщества
Специально на такой случай там есть вывод сообщения в уарт)
И где UART подключен к монитору пользователя в готовом устройстве?
И что меняет вывод тарабаршины в UART для польхзователя?
Как насчет устройств Sonoff? Они на 8266, насколько я знаю.
Они не имеют реальной сертификации и никаких гарантий. Никакой, кроме покупки где-то в китае бумажек.
Относятся к устройствам - "Доделай всё сам" перед использованием или потыркав - выкинь.
 

x8973

Member
И где UART подключен к монитору пользователя в готовом устройстве?
И что меняет вывод тарабаршины в UART для польхзователя?
У меня начинают закрадываться смутные сомнения) Вы вообще понимаете, что этот код делает? Или думаете, что "пользователь" будет перепаивать флешку на готовом устройстве, а потом думать, почему же устройство не работает? Или, может быть, у флешки внезапно может измениться объем, и из-за этого изменится раскладка партиций?
 

pvvx

Активный участник сообщества
У меня начинают закрадываться смутные сомнения) Вы вообще понимаете, что этот код делает? Или думаете, что "пользователь" будет перепаивать флешку на готовом устройстве, а потом думать, почему же устройство не работает? Или, может быть, у флешки внезапно может измениться объем, и из-за этого изменится раскладка партиций?
У меня смутные сомнения что это нельзя было решить в самом SDK и сделать это профессионально.
Но Espressif "несмогла" и повесила это на вас.

Это примерно как история использования чипа и ПО от Espressif у Xiaomi для кошачьей кормушки.
После выпуска Xiaomi долго пыталась указать что оно выпушено не под её брендом, указывая на фирму изготовителя в палатке в Китае :)
 

x8973

Member
У меня смутные сомнения что это нельзя было решить в самом SDK и сделать это профессионально.
Согласен, Espressif могли спрятать это в глубины SDK, оставив программисту только необходимость указать в коде дефайн с объемом флешки. Почему они этого не сделали - кто знает :) Но теперь оно так, и приходится мириться, если используем официальную СДК. Или оставаться на предыдущей версии, где этого еще нет, так же как нет возможных исправлений и дополнений новых версий. Благо, Espressif об этом честно предупредила в файле readme.
 

x8973

Member
Прекрасно понимаю и даже знаю где и когда он вызывается в прошивке, в отличии от вас.
Ну тогда вы должны понимать, что конечному пользователю устройства от этого кода ни холодно, ни жарко. Он все равно будет в бинарнике, независимо от того, где он написан.
 

pvvx

Активный участник сообщества
Согласен, Espressif могли спрятать это в глубины SDK, оставив программисту только необходимость указать в коде дефайн с объемом флешки. Почему они этого не сделали - кто знает :) Но теперь оно так, и приходится мириться, если используем официальную СДК. Или оставаться на предыдущей версии, где этого еще нет, так же как нет возможных исправлений и дополнений новых версий. Благо, Espressif об этом честно предупредила в файле readme.
Объем флешки так-же разбирается в SDK. И код уже есть. Причины выноса не в том, что вы выдумали. И решается это проще - если не объявил свои, то действуют оптимально вычисляемые установки.
По этому и указал что void у данной процедуры - плохое решение. Если вам не нравиться weak, то можно было отдать код возврата с предпочтением пользователя SDK.
 

pvvx

Активный участник сообщества
Ну тогда вы должны понимать, что конечному пользователю устройства от этого кода ни холодно, ни жарко. Он все равно будет в бинарнике, независимо от того, где он написан.
Такого коду и хуже в бинарнике Espressif толпа. По этому устройство кроме встроенных глюков самого чипа имеет и тысячи глюков своего ПО.
У Espressif нет даже IDE. Всё чужое и типа ворованное, т.к. при первых выпусках не имело даже общепринятых лицензий.
И код RF они не открывают по той-же причине - воровано.
При этом ссылаются на каих-то Хакеров :) При том, что масса других устройств давно имеет открытый код RF.
 

x8973

Member
Такого коду и хуже в бинарнике Espressif толпа. По этому устройство кроме встроенных глюков самого чипа имеет и тысячи глюков своего ПО.
Ну так не используйте, вас же никто не заставляет :) А то складывается впечатление, что вы поставили себе задачу - сидеть в топиках, посвященных программированию под этот чип, и поливать его грязью) Да, есть вещи получше и покачественнее. Да, вы многое про этот чип знаете, за это мое вам уважение.
А на этом предлагаю завершить оффтоп. Мы здесь не для того собрались :)
 

pvvx

Активный участник сообщества
Отсылка причины закрытых кодов у Espressif дана оф. лицом - плохие Хакеры :)
 
Сверху Снизу