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

 
 
> Как правильно использовать сторожевой таймер с РТОС?, wathdog timer, RTOS
Abcde
сообщение Feb 18 2018, 11:43
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 9-03-16
Пользователь №: 90 775



Сейчас период таймаута выбран 0,5 сек, обнуление счетчика сторожевого таймера происходит в одной задаче РТОС, которая начинает выполняться только через 1 секунду после подачи питания (такая особенность). Получается сторожевой таймер срабатывает раньше…
Где должен обнуляться счетчик сторожевого таймера? Сейчас он обнуляется в одной из задач РТОС, почти безусловно, т.е. контролируется только правильность работы этой задачи. Как контролировать остальные, особенно если они взаимосвязанные (ждут результатов работы других задач)?
Или задачи во время своего выполнения сами должны анализировать себя и сигнализировать выше, но если РТОС вытесняющая, то задача может прерваться и анализ оказаться неполным или не быть готовым к моменту принятия решения о сбросе по сторожевому таймеру. Как тут быть?
Обязательно ли проводить самодиагностику сторожевого таймера при подаче питания (когда ждем сброса по срабатыванию сторожевого таймера, а после него фиксируем успешность его работы и загружаемся как обычно). Но это ограничивает период таймаута сторожевого таймера, чтобы долго не загружать устройство.
Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Den64
сообщение Mar 3 2018, 19:53
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



У меня в домашней автоматике, периодически, зависает одна задача. Примерно раз в день. Просто передёргиваю питание, могу себе такое позволить. Лень ошибку устранить.
Ну вот как защитит WDT если, я просто запущу ещё один процесс который будет сбрасывать таймер допустим раз в секунду? Ну и будет отдельный процесс сбрасывать, а другой висеть или завершился (бес его знает что там).
100% защиты от софтовой ошибки WDT не даст, да и от аппаратной. Это понятно. Но вот смысл сбрасывать в отдельной низкоприоритетной задаче вижу только в защите от сильной загрузки процессора, и то только в момент сброса. Процессор может быть загружен пол секунды, а в момент работы процесса сброса процессор свободен. Непонятно.

Цитата(Forger @ Mar 3 2018, 21:44) *
Если планировщик вытесняющий, то это - абсолютно плохая плохая идея!!! , поскольку тогда WDT будет сбрасывает всегда

Планировщик это вообще то не одна строчка кода. И варианты не только перед и после этой строчки.
Go to the top of the page
 
+Quote Post
Forger
сообщение Mar 3 2018, 21:26
Сообщение #3


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Den64 @ Mar 3 2018, 22:53) *
У меня в домашней автоматике, периодически, зависает одна задача. Примерно раз в день. Просто передёргиваю питание, могу себе такое позволить. Лень ошибку устранить.
Ну вот как защитит WDT если, я просто запущу ещё один процесс который будет сбрасывать таймер допустим раз в секунду?

Тут WDT вообще не поможет. Тут - проблема другого характера:
Цитата
"лень ошибку устранить"




Цитата
100% защиты от софтовой ошибки WDT не даст, да и от аппаратной. Это понятно.
WDT существует не для борьбы с ошибками, а совсем для другого - как минимум для защиты от некоторых непредвиденных ситуаций.
WDT создан лишь как дополнение к существующим методам защиты, но не их замена.
Грамотное применение WDT позволить реализовать все его возможности, а не создавать иллюзию от его якобы пользы.

Цитата
Но вот смысл сбрасывать в отдельной низкоприоритетной задаче вижу только в защите от сильной загрузки процессора, и то только в момент сброса.
В момент сброса процессор сброшен и ничего у него не работает. Вы о чем?

Цитата
Процессор может быть загружен пол секунды
Если это время измеряется в секундах, то период WDT также должен быть настроен на аналогичный интервал.
А вообще real-time приложение НИКОГДА не должно быть загружено на 100% более, чем допустимое (детерминированное) время реакции на любое событие системы!
В данном случае - полсекунды - это огромное время, за которое в реальном устройстве может успеть произойти очень много неприятностей.

Цитата
Непонятно.
Читаем матчасть!



Цитата
Планировщик это вообще то не одна строчка кода. И варианты не только перед и после этой строчки.
Да хоть 500 тыщ строк кода, сути это не меняет.
Угробить функционал WDT очень просто - достаточно лишь сбрасывать его где надо и не надо wink.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Den64
сообщение Mar 3 2018, 22:31
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



Цитата(Forger @ Mar 4 2018, 00:26) *
В момент сброса процессор сброшен и ничего у него не работает. Вы о чем?
...
В данном случае - полсекунды - это огромное время, за которое в реальном устройстве может успеть произойти очень много неприятностей.
...
Читаем матчасть!

я тоже могу начать переводить тему, коверкать смысл, демагогией заниматься, тролить...
Цитата(Forger @ Mar 4 2018, 00:26) *
WDT существует не для борьбы с ошибками, а совсем для другого - как минимум для защиты от некоторых непредвиденных ситуаций.

А если по теме. Произошла непредвиденная ситуация (любая, не ошибка софта. Это я для примера писал), не работает один процесс. Как поможет тот пример, что Вы привели, восстановить работу?
Go to the top of the page
 
+Quote Post
Forger
сообщение Mar 3 2018, 23:25
Сообщение #5


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Den64 @ Mar 4 2018, 01:31) *
Как поможет тот пример, что Вы привели, восстановить работу?

Вы в упор меня не слышите! Повторюсь: WDT не предназначен для борьбы с последствиями банальных программных косяков!

WDT нужно настраивать на максимально допустимый интервал, за который программа не успеет наделать "делов".
В вашем примере - задача, которая может тупить (загружает проц. на 100%) слишком долго (намного дольше допустимого времени реакции системы на сбой), то эту задачу нужно дробить. А WDT тут уж не поможет.

На практике WDT я настраиваю на интервал максимально допустимой реакции на внешнее воздействие, на которое система не отреагировав вовремя, наделает печальных последствий.
В моих случаях - никогда не более 50..100 мс, обычно - намного меньше.

Если в системе есть задачи, которые могут быть загружены на 100% дольше, чем, скажем, один системный такт, то такой задаче всегда назначается минимальный (фоновый приоритет).
WDT тогда придется назначить приоритет выше. И то, если эта задача не работает в внешней аппаратной обвзякой (тупая числодробилка).
Но пока что, к счастью, мне всегда удавалось избежать подобных случаев :D


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Den64
сообщение Mar 3 2018, 23:36
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



Цитата(Forger @ Mar 4 2018, 02:25) *
Вы в упор меня не слышите. WDT не предназначен для устранения последствий программных косяков!

Это Вы не слышите.
Цитата
Произошла непредвиденная ситуация (любая, не ошибка софта.

я полностью согласен. WDT хорош против железных неполадок. я только за, я не против.
Go to the top of the page
 
+Quote Post
Forger
сообщение Mar 3 2018, 23:41
Сообщение #7


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Den64 @ Mar 4 2018, 02:36) *
Это Вы не слышите.

Я все прекрасно слышу: вы спрашиваете про то, как с помощью WDT исправить то, что исправляется совсем иначе.

Цитата
WDT хорош против железных неполадок
Алилуйя!!!

Цитата
я только за, я не против.
Тогда к чему был заводить этот разговор про кривую задачу, зависающую на полсек?


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Abcde   Как правильно использовать сторожевой таймер с РТОС?   Feb 18 2018, 11:43
- - Den64   Бывает что процессы зависают из-за ошибки алгоритм...   Feb 18 2018, 12:02
- - jcxz   Цитата(Abcde @ Feb 18 2018, 13:43) Где до...   Feb 18 2018, 13:29
- - Baser   Обычно период сторожевика выбирают от внешних усло...   Feb 18 2018, 13:31
|- - jcxz   Цитата(Baser @ Feb 18 2018, 15:31) Нерегу...   Feb 19 2018, 05:57
|- - Arlleex   Цитата(jcxz @ Feb 19 2018, 08:57) Контрол...   Mar 1 2018, 19:03
|- - jcxz   Цитата(Arlleex @ Mar 1 2018, 21:03) Ну не...   Mar 1 2018, 20:37
- - HardEgor   Цитата(Abcde @ Feb 18 2018, 18:43) Где до...   Feb 18 2018, 13:41
- - haker_fox   QUOTE (Abcde @ Feb 18 2018, 19:43) Где до...   Feb 19 2018, 00:44
- - Forger   Цитата(Abcde @ Feb 18 2018, 14:43) Как пр...   Mar 3 2018, 17:53
- - ViKo   1. Впервые слышу про сторожевой таймер в МК, котор...   Mar 3 2018, 18:33
|- - Forger   Цитата(ViKo @ Mar 3 2018, 21:33) 1. Вперв...   Mar 3 2018, 18:44
|- - jcxz   Цитата(ViKo @ Mar 3 2018, 20:33) 4. Сбрас...   Mar 4 2018, 01:49
|- - Den64   Цитата(Forger @ Mar 4 2018, 02:25) В ваше...   Mar 3 2018, 23:45
|- - Forger   Цитата(Den64 @ Mar 4 2018, 02:41) С чего ...   Mar 3 2018, 23:58
- - Den64   Цитата(Forger @ Mar 4 2018, 02:58) Ваши с...   Mar 4 2018, 00:12
|- - Forger   Цитата(Den64 @ Mar 4 2018, 03:12) Вытесня...   Mar 4 2018, 00:17
|- - Den64   Цитата(Forger @ Mar 4 2018, 03:17) Неважн...   Mar 4 2018, 00:28
|- - Forger   Цитата(Den64 @ Mar 4 2018, 03:28) Согласе...   Mar 4 2018, 00:32
|- - Den64   Цитата(Forger @ Mar 4 2018, 03:32) Квант ...   Mar 4 2018, 00:40
- - ViKo   О, про WWDT я и забыл, а когда видел, путал с AWD,...   Mar 4 2018, 04:23
- - Forger   Цитата(ViKo @ Mar 4 2018, 07:23) Выходит,...   Mar 4 2018, 08:08
- - jcxz   Цитата(Forger @ Mar 4 2018, 10:08) В таки...   Mar 4 2018, 11:18
- - Forger   Цитата(jcxz @ Mar 4 2018, 13:52) Вы безус...   Mar 4 2018, 11:26
- - jcxz   Цитата(Forger @ Mar 4 2018, 13:26) В ваше...   Mar 4 2018, 12:24
- - Forger   Цитата(jcxz @ Mar 4 2018, 15:24) Лучше эт...   Mar 4 2018, 12:59


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:36
Рейтинг@Mail.ru


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