реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Надежный и дешевый watchdog таймер на 30 сек, Нужен таймер для аппаратного вочдога
ViKo
сообщение Sep 3 2015, 07:49
Сообщение #16


Универсальный солдатик
******

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



Цитата(Сергей Борщ @ Sep 3 2015, 09:52) *
Видимо у меня принципы другие - мне нужен. Правда на куда меньшее время, порядка секунды.

А что он контролирует?
А если произойдет сбой, обновление начнется сначала само, как ни в чем не бывало? Я с компьютера вручную пересылку прошивки запускаю. И старт обновления в приборе тоже вручную даю.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 3 2015, 11:14
Сообщение #17


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 3 2015, 11:43
Сообщение #18


Универсальный солдатик
******

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



Цитата(Сергей Борщ @ Sep 3 2015, 14:14) *
Мне не нужно лезть в прибор, чтобы запустить обновление. Достаточно запустить программу обновления на компе.

То есть, при подключенном к компу приборе запускаете программу обновления, о процесс пошел. Если произошел сбой связи или программирования флэш-памяти, прибор перезапускается, "вспоминает", что должен обновляться, посылает в комп сигнал, и программа перезапускает обновление? Или программа не дожидается подтверждения завершения, и сама перезапускается обновлять по-новой?

На обрыв связи обычного программного таймаута не хватит?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 3 2015, 13:49
Сообщение #19


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Sep 4 2015, 05:45
Сообщение #20


Профессионал
*****

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



Цитата(turnon @ Sep 3 2015, 08:26) *
Часто вижу высказываания, что в ответсвенные изделия ставят внешний. Придерживаюсь такого же мнения. Не хочется делать безответственные девайсы.

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

Цитата(ViKo @ Sep 3 2015, 09:06) *
При обновлении программы сторожевой таймер не нужен в принципе.

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


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 4 2015, 07:32
Сообщение #21


Универсальный солдатик
******

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



Цитата(esaulenka @ Sep 4 2015, 08:45) *
Практика показывает, что безответственными девайсы получаются сами собой.
Например, если недостаточно хорошо продумать условия сброса ватчдога, половина freertos'а виснет, в живых остаётся только "малозначимые" задачи, одна из которых продолжает дёргать ватчдог.

Вот именно. Некоторые умельцы считают, что если они дергают сторожевой таймер везде, куда только фантазия ни заведет (например, в прерываниях), то их программа станет супернадежной. Таймером нужно пользоваться очень аккуратно, чтобы гарантировать, что основной цикл или планировщик задач выполняется.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 4 2015, 08:45
Сообщение #22


Универсальный солдатик
******

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



Цитата(esaulenka @ Sep 4 2015, 08:45) *
Но на практике проще сбрасывать единократно запущенный ватчдог постоянно, чем его включать-выключать.
Это если выключение ватчдога вообще предусмотрено.

Вот и включите его в основной программе, а не в загрузчике. Я бы делал так. Сейчас вообще отказался от него, закомментировал инициализацию. Потому что попробовал всунуть его сброс в idle задачу в RTX RTOS, но что-то не получилось, не помню... забил.
Go to the top of the page
 
+Quote Post
turnon
сообщение Sep 4 2015, 18:02
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



Цитата(esaulenka @ Sep 4 2015, 08:45) *
Практика показывает, что безответственными девайсы получаются сами собой.
Например, если недостаточно хорошо продумать условия сброса ватчдога, половина freertos'а виснет, в живых остаётся только "малозначимые" задачи, одна из которых продолжает дёргать ватчдог.

Этот момент тоже обдумывал. На этот случай контролирую время выполнения всех задач. Если оно превышает заданное - вочдог в системной задаче перестает сбрасываться из-за обнаружения зависшей задачи. А контролируетс время выполнения задачи просто - в начале и конце цикла задачи обновляется время последнего выполнения задачи, а системная задача это видит.

Цитата(ViKo @ Sep 4 2015, 10:32) *
Вот именно. Некоторые умельцы считают, что если они дергают сторожевой таймер везде, куда только фантазия ни заведет (например, в прерываниях), то их программа станет супернадежной. Таймером нужно пользоваться очень аккуратно, чтобы гарантировать, что основной цикл или планировщик задач выполняется.

Согласен. Дергать собаку в аппаратном таймере крайне ненадежно. С большей вероятностью зависнет программа, а таймер продолжит тикать.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th June 2025 - 01:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01441 секунд с 7
ELECTRONIX ©2004-2016