|
Сторожевой таймер!..., быть ему ...или не быть? |
|
|
|
Apr 22 2006, 18:48
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 31-05-05
Пользователь №: 5 579

|
Я имею дело с сигнализациями (DSC,Spectra) - очень редко,но виснут. Интересно,что иногда виснет как бы часть устройства - все функции работают а какая то нет - помогает переключение питания.
|
|
|
|
|
Apr 22 2006, 20:38
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(plan @ Apr 19 2006, 14:11)  Цитата(Rst7 @ Apr 19 2006, 11:32)  Да вообщем, в приложениях, которые требуют хорошей надежности в смысле борьбы с зависанием, не грех и две собаки пользовать - внутреннюю и внешнюю. Кстати, наглядный пример такого подхода - мобильники сименс  Это разумное решение,хотя в принципе всегда хватает и одного,не важно внутренний он или внешний.Проблема даже не в таймерах.Например если зависание аппаратное(что у атмела практически невозможно при правильно разработанной схеме),то ватчдогом можно даже пренебречь.А если уж случается аппаратное зависание - то это уже не работа устройства ,а мучение. Другое дело зависание програмное. Конечно в некоторой степени ватчдог может помочь системе,но это ведь не выход. Выход в разумном тщательном тестировании программы и лишь потом можно подключить таймер чисто для подстраховки.При тестировании и отладке программы лучше его выключить. Приведу пример из своей практики. В облтелекоме стояли изделия подключенные к маршрутизатору. Круглосуточная работа. 10 моих на atmega8515 и 10 "чужих" на базе PIC. Свои я вылизовал несколько месяцев. В результате на PIC висли ~ ч/з 1.5 суток, а мои ~ ч/з 10 суток. Но всё равно висли! Вдумчивое применение WDT привело к полному отсутствию зависаний. (т.е. они были, но устройство с ними справлялось). И в настоящий момент времени используются только мои изделия. Насчёт вдумчивого тестирования. Работа идёт с маршрутизаторами CISCO. Разработанное изделие очень непростое плюс логика его работы изменяется в зависимости от 69 регистров (битовые!) Играет роль входящий поток. Последняя найденная и устранённая ошибка возникала с вероятностью одна на 20 переданных мегабайт инфы. Никто не даст подключенный маршрутизатор для тестирования твоего копеечного оборудования. И тебя туда не пустят. Эмулировали работу, эмулировали ошибочные ситуации и т.п. Да и вообще при возникновении виса 1 раз в неделю как его вычислить??? Любопытно что и наши изделия и "чужие" висли одинаковым образом.
Сообщение отредактировал SasaVitebsk - Apr 22 2006, 20:42
|
|
|
|
|
Apr 25 2006, 05:15
|

Участник

Группа: Участник
Сообщений: 73
Регистрация: 23-12-05
Из: Украина Днепродзержинск
Пользователь №: 12 599

|
Цитата(SasaVitebsk @ Apr 22 2006, 23:38)  Приведу пример из своей практики. В облтелекоме стояли изделия подключенные к маршрутизатору. Круглосуточная работа. 10 моих на atmega8515 и 10 "чужих" на базе PIC. Свои я вылизовал несколько месяцев. В результате на PIC висли ~ ч/з 1.5 суток, а мои ~ ч/з 10 суток. Но всё равно висли! Вдумчивое применение WDT привело к полному отсутствию зависаний. (т.е. они были, но устройство с ними справлялось). И в настоящий момент времени используются только мои изделия. Насчёт вдумчивого тестирования. Работа идёт с маршрутизаторами CISCO. Разработанное изделие очень непростое плюс логика его работы изменяется в зависимости от 69 регистров (битовые!) Играет роль входящий поток. Последняя найденная и устранённая ошибка возникала с вероятностью одна на 20 переданных мегабайт инфы. Никто не даст подключенный маршрутизатор для тестирования твоего копеечного оборудования. И тебя туда не пустят. Эмулировали работу, эмулировали ошибочные ситуации и т.п. Да и вообще при возникновении виса 1 раз в неделю как его вычислить??? Любопытно что и наши изделия и "чужие" висли одинаковым образом.  Полностью согласен-бывает и такое ,но всё таки Вас не терзают мысли о том, что со временем если Вы не обработаете в Вашем устройстве все исключения при приёме потока данных , может появиться устройство Вашего конкурента, которое работает без ошибок.
|
|
|
|
|
Apr 25 2006, 18:49
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(plan @ Apr 25 2006, 08:15)  Полностью согласен-бывает и такое ,но всё таки Вас не терзают мысли о том, что со временем если Вы не обработаете в Вашем устройстве все исключения при приёме потока данных , может появиться устройство Вашего конкурента, которое работает без ошибок. Так я не отвергаю ваше предыдущее замечание, а полностью его подтверждаю. Чем более качественно прописано всё, тем надёжнее работает изделие. Очень важно также правильно выбрать протоколы и методики съёма/соединений и т.п. При более менее серийном изделии очень важным является полное тестирование (также после каждого изменения). А WDT, я лично, подключаю на самом последнем завершающем этапе. Иначе будет как в Windows ошибка работы одной проги благополучно устраняется корекцией в другом блоке, - а с виду всё великолепно работает! Всегда может появится изделие которое работает лучше. Но правильный подход не дожидаясь этого улучшать своё. В моём случае вис происходил скорее всего изза взаимодействия изделия и маршрутизатора. К сожалению проверить это физически невозможно. А смоделировать такую ситуацию мне не удалось. WDT я проверял таким образом. Выводил признак что прерывание сработало и пытался подвешать изделие при помощи импульсного паяльника включенного в ту же розетку что и БП изделия. После этого начинал "искрить" паяльником. При отсутствии WDT прибор можно было подвесить.
|
|
|
|
|
May 3 2006, 14:43
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 21-02-06
Пользователь №: 14 561

|
Цитата(plan @ Apr 19 2006, 13:11)  Цитата(Rst7 @ Apr 19 2006, 11:32)  Да вообщем, в приложениях, которые требуют хорошей надежности в смысле борьбы с зависанием, не грех и две собаки пользовать - внутреннюю и внешнюю. Кстати, наглядный пример такого подхода - мобильники сименс ;)
Это разумное решение,хотя в принципе всегда хватает и одного,не важно внутренний он или внешний.Проблема даже не в таймерах.Например если зависание аппаратное(что у атмела практически невозможно при правильно разработанной схеме),то ватчдогом можно даже пренебречь.А если уж случается аппаратное зависание - то это уже не работа устройства ,а мучение. Другое дело зависание програмное. Конечно в некоторой степени ватчдог может помочь системе,но это ведь не выход. Выход в разумном тщательном тестировании программы и лишь потом можно подключить таймер чисто для подстраховки.При тестировании и отладке программы лучше его выключить. А что может быть источником аппаратного зависания?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|