|
Надежный и дешевый watchdog таймер на 30 сек, Нужен таймер для аппаратного вочдога |
|
|
|
Sep 3 2015, 11:14
|

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

|
Цитата(ViKo @ Sep 3 2015, 10:49)  А что он контролирует? Сбой связи. Цитата(ViKo @ Sep 3 2015, 10:49)  А если произойдет сбой, обновление начнется сначала само, как ни в чем не бывало? Да. Цитата(ViKo @ Sep 3 2015, 10:49)  И старт обновления в приборе тоже вручную даю. А я - нет. Мне не нужно лезть в прибор, чтобы запустить обновление. Достаточно запустить программу обновления на компе.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Sep 3 2015, 11:43
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(Сергей Борщ @ Sep 3 2015, 14:14)  Мне не нужно лезть в прибор, чтобы запустить обновление. Достаточно запустить программу обновления на компе. То есть, при подключенном к компу приборе запускаете программу обновления, о процесс пошел. Если произошел сбой связи или программирования флэш-памяти, прибор перезапускается, "вспоминает", что должен обновляться, посылает в комп сигнал, и программа перезапускает обновление? Или программа не дожидается подтверждения завершения, и сама перезапускается обновлять по-новой? На обрыв связи обычного программного таймаута не хватит?
|
|
|
|
|
Sep 3 2015, 13:49
|

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

|
Цитата(ViKo @ Sep 3 2015, 14:43)  Или программа не дожидается подтверждения завершения, и сама перезапускается обновлять по-новой? Не дождавшись подтверждения программа завершается с сообщением об ошибке. Человек может запустить ее снова. Цитата(ViKo @ Sep 3 2015, 14:43)  На обрыв связи обычного программного таймаута не хватит? Хватит. Но собакой значительно проще.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Sep 4 2015, 05:45
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Цитата(turnon @ Sep 3 2015, 08:26)  Часто вижу высказываания, что в ответсвенные изделия ставят внешний. Придерживаюсь такого же мнения. Не хочется делать безответственные девайсы. Практика показывает, что безответственными девайсы получаются сами собой. Например, если недостаточно хорошо продумать условия сброса ватчдога, половина freertos'а виснет, в живых остаётся только "малозначимые" задачи, одна из которых продолжает дёргать ватчдог. Цитата(ViKo @ Sep 3 2015, 09:06)  При обновлении программы сторожевой таймер не нужен в принципе. Спасибо за ценные сведения. Но на практике проще сбрасывать единократно запущенный ватчдог постоянно, чем его включать-выключать. Это если выключение ватчдога вообще предусмотрено.
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
|
Sep 4 2015, 07:32
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(esaulenka @ Sep 4 2015, 08:45)  Практика показывает, что безответственными девайсы получаются сами собой. Например, если недостаточно хорошо продумать условия сброса ватчдога, половина freertos'а виснет, в живых остаётся только "малозначимые" задачи, одна из которых продолжает дёргать ватчдог. Вот именно. Некоторые умельцы считают, что если они дергают сторожевой таймер везде, куда только фантазия ни заведет (например, в прерываниях), то их программа станет супернадежной. Таймером нужно пользоваться очень аккуратно, чтобы гарантировать, что основной цикл или планировщик задач выполняется.
|
|
|
|
|
Sep 4 2015, 18:02
|
Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207

|
Цитата(esaulenka @ Sep 4 2015, 08:45)  Практика показывает, что безответственными девайсы получаются сами собой. Например, если недостаточно хорошо продумать условия сброса ватчдога, половина freertos'а виснет, в живых остаётся только "малозначимые" задачи, одна из которых продолжает дёргать ватчдог. Этот момент тоже обдумывал. На этот случай контролирую время выполнения всех задач. Если оно превышает заданное - вочдог в системной задаче перестает сбрасываться из-за обнаружения зависшей задачи. А контролируетс время выполнения задачи просто - в начале и конце цикла задачи обновляется время последнего выполнения задачи, а системная задача это видит. Цитата(ViKo @ Sep 4 2015, 10:32)  Вот именно. Некоторые умельцы считают, что если они дергают сторожевой таймер везде, куда только фантазия ни заведет (например, в прерываниях), то их программа станет супернадежной. Таймером нужно пользоваться очень аккуратно, чтобы гарантировать, что основной цикл или планировщик задач выполняется. Согласен. Дергать собаку в аппаратном таймере крайне ненадежно. С большей вероятностью зависнет программа, а таймер продолжит тикать.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|