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

 
 
> Как правильно использовать сторожевой таймер с РТОС?, 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
Ответов
ViKo
сообщение Mar 3 2018, 18:33
Сообщение #2


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

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



1. Впервые слышу про сторожевой таймер в МК, который должен быть сброшен не ранее определенного времени.

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

3. Сбрасывать сторожевой таймер в планировшике - хорошая идея, если это возможно.

4. Сбрасывать сторожевой таймер в прерываниях - в корне неверно, поскольку основная программа может уже безнадежно висеть.

5. Если РТОС зависает из-за неправильно заданной передачи управления между задачами, то таймер нужно встроить программисту в нутро.
Go to the top of the page
 
+Quote Post
Forger
сообщение Mar 3 2018, 18:44
Сообщение #3


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

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



Цитата(ViKo @ Mar 3 2018, 21:33) *
1. Впервые слышу про сторожевой таймер в МК, который должен быть сброшен не ранее определенного времени.
(С) "Век живи - век учись!" wink.gif
Например, в STM-ках есть WWDT - Window WDT...
Вообще, в идеале, WDT должен тактироваться от собственного независимого генератора (в нормальных МК есть даже несколько разных WDT, в т.ч. "аналоговых").
При схеме, которую я описал выше, любой сбой системной частоты, от которой тактируется системный таймер ОС, вызовет несвоевременный сброс WDT, что вызовет всегда сброс проца.
Т. е. оконный WDT позволяет еще и бороться со сбоями тактовой частоты (банально коснулись пальцем выводов кварца), т. е. WDT "контролирует" связь приложения с реальным временем.

Цитата
3. Сбрасывать сторожевой таймер в планировшике - хорошая идея, если это возможно.

Если планировщик вытесняющий, то это - абсолютно плохая плохая идея!!! , поскольку тогда WDT будет сбрасывает всегда безусловно "благодаря" прерываниям от системного таймера и сервисами ОС, вызываемыми из других прерываний (семафоры/сообщения из прерываний).
Приложение давно висит, но данные снаружи сыпятся, вызывают прерывания, те уже семафорят (будят) задачи и тем самым безусловно вызывают планировщик, а тут сбрасывается WDT ... короче, в такой схеме WDT вообще бесполезен!

Фактически это то же самое, что и сбрасывать WDT в прерываниях:
Цитата
4. Сбрасывать сторожевой таймер в прерываниях ....




Цитата
5. Если РТОС зависает из-за неправильно заданной передачи управления между задачами, то таймер нужно встроить программисту в нутро.

WDT в принципе не должен ничего знать о принципах и стратегиях построения приложения. WDT - полностью независимый "орган", и работать он должен не предвзято.
Проект может меняться как угодно, а WDT - как работал так и должен работает. Ему все это должно быть "до лампочки". В противном случае проку от такого 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
|- - jcxz   Цитата(ViKo @ Mar 3 2018, 20:33) 4. Сбрас...   Mar 4 2018, 01:49
- - Den64   У меня в домашней автоматике, периодически, зависа...   Mar 3 2018, 19:53
|- - Forger   Цитата(Den64 @ Mar 3 2018, 22:53) У меня ...   Mar 3 2018, 21:26
|- - Den64   Цитата(Forger @ Mar 4 2018, 00:26) В моме...   Mar 3 2018, 22:31
|- - Forger   Цитата(Den64 @ Mar 4 2018, 01:31) Как пом...   Mar 3 2018, 23:25
|- - Den64   Цитата(Forger @ Mar 4 2018, 02:25) Вы в у...   Mar 3 2018, 23:36
||- - Forger   Цитата(Den64 @ Mar 4 2018, 02:36) Это Вы ...   Mar 3 2018, 23:41
|- - 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 Текстовая версия Сейчас: 25th July 2025 - 16:27
Рейтинг@Mail.ru


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