|
|
  |
IAR EWAVR v5.30.6 и WDT, таймаут WDT до main (длинная инициализация) |
|
|
|
Jan 4 2010, 10:50
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(zltigo @ Jan 4 2010, 12:21)  Возможно. Назовешь, хоть одну? Нет. Но это не означает, что их не существует. Даже ты допускаешь возможность их существования. Цитата(zltigo @ Jan 4 2010, 12:21)  но зачем разновариантность вводить-то? Ну, наличие неиспользуемой кем-то функции для тех, кто ее использует все же лучше чем ее отсутствие. Я не использую прерывание по окончанию записи во флеш - писать в Лигу Наций или пусть остается - не мешает ведь?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 4 2010, 15:23
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(Xenia @ Jan 4 2010, 06:41)  Перед смертью не надышишься - если у вас память и регистры сбоят, то watch dog вам не поможет. Даже лучше будет, если такой дерьмовый проц не запустится, чем если он начнет что-то делать с такими регистрами и памятью. Дурью, господа, маетесь. стараясь запустить проц, который не может пройти setup без ошибок. Вы не понимаете видимо сути моего высказывания. Процессор хороший и память и регистры - всё ок. Но помеха может сбить что угодно и когда угодно (и даже во время startup). К Вашему сведению, помеха обычно просто искажает данные в ячейках памяти а не сами ячейки. И я включаю WDT фьюзм, ибо мои приборы и проекты используются не только в гражданских целях.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Jan 4 2010, 15:53
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Dog Pawlowa @ Jan 4 2010, 14:11)  Из-за помех контроллер болтается в стартапе бесконечно.... Не катит  . Потом "из-за помех" точно-также будет болтаться в WD "бесконечно". Получаем неработоспособную вещь и без разницы, где она там "бесконечно болтается"  , главное, что по любому НЕ РАБОТАЕТ. Цитата(Сергей Борщ @ Jan 4 2010, 13:50)  Даже ты допускаешь возможность их существования. Ну после того, как даже от тебя ответа не получил  вероятность существования сколь-нибудь разумных причин для меня еще уменьшилась. Цитата(demiurg_spb @ Jan 4 2010, 18:23)  К Вашему сведению, помеха обычно просто искажает данные в ячейках памяти а не сами ячейки. Еще раз и помедленнее, что такое "искажает сами ячейки"? Цитата(demiurg_spb @ Jan 4 2010, 18:23)  И я включаю WDT фьюзм, ибо мои приборы и проекты используются не только в гражданских целях. Круто! Несчастные потребители получают "приборы" выживающие только за счет WD. А туда еще добавить много много еще сбитых ячеек памяти НЕ приведут к срабатыванию WD, но к "глюкам".... А как-же вообще разработчики на других плаформах НЕ имеющих дивного фьюза, как класс, разрабатывают свои изделия?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jan 4 2010, 16:15
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(zltigo @ Jan 4 2010, 18:53)  Не катит  . Потом "из-за помех" точно-также будет болтаться в WD "бесконечно". Получаем неработоспособную вещь и без разницы, где она там "бесконечно болтается"  , главное, что по любому НЕ РАБОТАЕТ. Катит, ибо разница есть. Прорвавшись в основную программу без запуска ВДТ, программа включит чего-нить такое, от чего станет кисло. Я не фантазирую - на моем счету несколько прискорбных случаев из-за недостаточной защищенности от зависаний. Никого не убило, так... залило больничку... Всего-то открылся клапан воды. Конечно, вероятность невелика, но она есть.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Jan 4 2010, 16:54
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Dog Pawlowa @ Jan 4 2010, 19:15)  Катит, ибо разница есть. Прорвавшись в основную программу без запуска ВДТ, программа включит чего-нить такое, от чего станет кисло. Кусок сбоящего дерьма и после долей миллисекунды-секунды проведенных в startup ДОЛЖЕН будет часами-годами работать и тогда уж за это время гарантированно "включит чего-нить такое, от чего станет кисло" и WD не тявкнет даже. Да и за время срабатывания WD сошедший с ума по независящим от него причинам контроллер напахать может очень даже не мало - чай не арифмометр и команды быстро может выдавать. Цитата(Dog Pawlowa @ Jan 4 2010, 19:15)  Никого не убило, так... залило больничку... Всего-то открылся клапан воды. В качестве оффтопика по защитам от зависаний.. Несколько лет назад один знакомый молодой человек подался, не от хорошей жизни, в эксплуатацию разных там сигнализаций. В том числе в сферу его обслуживания входило новейшее офисное здание. Копаясь в оборудовании он обнаружил два отключеных тумблера относящихся к пожарной сигнализации... Ну и включил. Раздалась сирена, голосовое оповещение о пожаре. Выключить сразу не удалось. Испугался, выскочил, но к счастью даже народ сидящий рядом в Кафе никак на это представление не реагировал и главное, вода нигде не лилась. При дальнейшем обследовании системы в одной из коморок обнаружился силовой щит на котором были отключены все автоматы двигателей приводящих в действие вентили пожарных трубопроводов. Но и это еще не все, как потом выяснилось, сами вентили имели и параллельный ручной привод, каждый из которых был аккуратно заклинен пожарным ломиком. А Вы говорите WD
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jan 4 2010, 17:08
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(zltigo @ Jan 4 2010, 19:54)  Кусок сбоящего дерьма У нас есть "модифицированный рашпиль" для проверки. Не видел такой электроники, которая бы не превращалась в "кусок сбоящего дерьма" при проверках. Я просто за то, что если есть возможность уменьшить потери, то лучше это сделать. А вот из-за Вашей точки зрения Чернобыль и взорвался!
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Jan 4 2010, 18:05
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Dog Pawlowa @ Jan 4 2010, 21:15)  Катит, ибо разница есть. Прорвавшись в основную программу без запуска ВДТ, программа включит чего-нить такое, от чего станет кисло. В очередной раз констатирую, что я с AVR почти не знаком, но поскольку в корневом сообщении вопрос про ATmega324P, то можно ли в качестве ликбеза мне пояснить: как WDT влияет на "прорыв" в основную программу, если в AVR (как я понимаю) программа исполняется из Flash, а не из SRAM? Т.е. срабатывание WDT в стартапе ориентировано только на тот исчезающе малый случай наличия "плавающих" уровней во Flash, я правильно понимаю? Ну и тоже свой случай из жизни. Шкафы управления двумя газовыми котлами, теплоснабжением, ГВС и вентиляцией. Входные сигналы от токовых датчиков термопреобразователей и дискретные с преобразованием сигналов переменного напряжения 220В и постоянного 24В. Регулирует температуру отопления, горячего водоснабжения и вентиляции. Контроллеры имеют WDT, который не просто RESET для CPU делает, а полностью снимает питание с блоков контроллера. При запуске котельной в результате аварийной ситуации полопались и расплавились металлопластиковые трубы отопления, котлы перегрелись аж до 160°C (может и выше, но не удалось зарегистрировать т.к. датчики были до +150°C), в помещении котельной температура была ненамного меньше. "Спасло" от взрыва, что система пожаротушения не была заполнена водой. Представьте попадание холодной водички на перегретые котлы! В результате "разбора полетов" выяснилось, что завис АЦП, с помощью которого измеряются токи с преобразователей температуры. В результате контроллер считал, что у него температура теплоносителя низкая и котлы аварийно отключать вовсе не требуется. Т.е. контроллер-то работал нормально, но входные данные не проверялись на "валидность", а другой цепи защиты от перегрева котлов изначально задействовано не было. Этот оффтопик я к тому, что надежность не определяется только лишь наличием/отсутствием/использованием WDT. Надежность это задача комплексная и решается/определяется всеми средствами/компонентами системы.
|
|
|
|
|
Jan 5 2010, 08:07
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(rezident @ Jan 4 2010, 22:05)  как WDT влияет на "прорыв" в основную программу, если в AVR (как я понимаю) программа исполняется из Flash, а не из SRAM? 1) WDT на прорыв в основную программу не влияет никак, на прорыв куда-бы то ни было влияют внешние факторы. Нейтрино пролетело, разряд статики или еще что-нибудь. В результате WDT может оказаться не запущенным. 2) А при чем тут место нахождения программы? Даже если считать флэш "железной", код передается в АЛУ по каким-то шинам, через регистры, которые могут исказить данные. Что говорить - в АВР производителем ограничено изменение периода частоты между соседними периодами, хотя он "статический". Это нежный прибор, ненамного лучше хорошо знакомого Вам MSP430, в котором нет даже триггера Шмитта на входе сброса. А насчет комплекса факторов, влияющих на надежность - полностью согласен. Ради Бога, не считайте меня апологетом теории надежности типа "Дохтура", я самый отъявленный практик  Я делаю дешевые поделки, которые, тем не менее, должны работать в сложных условиях ЭМС. Или не работать. Но не вредить
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Jan 6 2010, 10:41
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(zltigo @ Jan 4 2010, 18:53)  Еще раз и помедленнее, что такое "искажает сами ячейки"? Это значит, что помеха искажает содержимое ячейки памяти (был 0 стал 1 и наоборот), а сама ячейка _физически_ остаётся исправной. Ну и упёртый народ  Я вот не пойму даже с чем Вы спорите? С включенным через fuse wdt контроллер не проводит фактически времени без неусыпного взгляда собаки, а с отключенным проводит. Мало, но проводит. Да шанс мал словить грабли за это время, но он ЕСТЬ. Так зачем же сознательно закладывать это шанс? И, к вопросу: "А если нет встроенного wdt?" - мой ответ: ставить однозначно внешний! И это не религиозные соображения. Не следует пренебрегать благами прогресса, мы ведь с вами не аскеты и не секта. В конце концов, мы давно не считаем на логарифмической линейке, а используем по большей части компьютер
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Jan 6 2010, 12:09
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(demiurg_spb @ Jan 6 2010, 13:41)  Я вот не пойму даже с чем Вы спорите? Но тем не менее пытаетесь рассказывать, как "надо трясти пальму"  . WD это есть последний. САМЫЙ последний шанс за живучесть. Причем далеко не всегда однозначно безболезненно применимый и всенепременно пользоваться этим шансом на первых микросекундах полета совершенно не обязательно. Как впрочем, как и вообще пользоваться WD - меня, например, ну очень расстроит переферийный контроллер втихаря перезапустившийся по собственному WD и забывший все, что ему приказывали делать.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|