Перейти к содержанию
    

WDT где сбрасывать?

Доброго дня.

Доселе никогда не работал с ватчдогом на мсп, всегда усыплял в начале кода.

Но тут дошло дело до серийной партии и встал вопрос - может оно надо.

Боюсь, что реализую и как нибудь не так (ввиду отсутствия навыкоыв работы), то бишь благими намерениями вымощу себе ад)

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

Камень f2132, в будущем планируется переход на g2231

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сбрасывать периодически, период меньше интервала переполнения вочдога. Сбрасывать там, куда гарантированно придешь с периодом опять же меньше интервала переполнения вочдога. А где конкретно, ну кто ж его знает вашу программу :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сбрасывать можно только в main(), потому что прерывания продолжают вызываться и после разрушения стека.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сбрасывать можно только в main(), потому что прерывания продолжают вызываться и после разрушения стека.

Отлично :), а как вариант - прерывание накрылось медным тазом, а main() тупо крутиться.

 

В случае наличия операционной системы варианты сброса WD следует начинать рассматривать с варианта соэдания самой низкоприоритетной задачи в которой осуществляется контроль работоспособности и основных задач и обработчиков прерываний. В этой-же задаче могут приниматься и какие-либо мягкие меры, например, обресетить сначала переферийное обороудование, вместо того, что-бы собаку спускать.

 

Без операционки - в том-же main() хоть какой-то контроль за псевдопроцессами и только в случае их работоспособности сброс WD.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отлично :), а как вариант - прерывание накрылось медным тазом, а main() тупо крутиться.

Обычно в main() ничего срочного не исполняется - в этом цикле повторяется инициализация периферии и настройка прерываний.

 

В случае наличия операционной системы варианты сброса WD следует начинать рассматривать с варианта соэдания самой низкоприоритетной задачи в которой осуществляется контроль работоспособности и основных задач и обработчиков прерываний.

Человек же писал - код простой.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... в этом цикле повторяется инициализация периферии и настройка прерываний.

сколько же их можно настраивать? ;)

 

Человек же писал - код простой.

Но прерывания то есть, раз их настраиваем постоянно?

 

Обычно в простых программах есть базовое прерывание таймера, в которое включаются фоновые сервисы периферии.

Вот оно и должно обязательно контролироваться. Если прерывание происходит, то сброс WDT в основном цикле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в этом цикле повторяется инициализация периферии и настройка прерываний.

Жутчайшая муть :( :( :( - стучать по голове РАБОТАЮЩЕЙ периферии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще накрывается все и работающая переферия и таймеры и main. Если удастся связать работу таймеров и main одним признаком и по нему глушить собаку- то будет хорошо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...