vasta 0 5 февраля, 2011 Опубликовано 5 февраля, 2011 · Жалоба Доброго дня. Доселе никогда не работал с ватчдогом на мсп, всегда усыплял в начале кода. Но тут дошло дело до серийной партии и встал вопрос - может оно надо. Боюсь, что реализую и как нибудь не так (ввиду отсутствия навыкоыв работы), то бишь благими намерениями вымощу себе ад) Код простейший, инициализация, усыпление ядра в лпм3, и далее по прерываниям таймера измерение и дергание ногами в зависимости от результатов измерения. Нужен ли в такив вещах ватчдог. и если нужен то в каком месте его сбрасывать Камень f2132, в будущем планируется переход на g2231 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jorikdima 0 5 февраля, 2011 Опубликовано 5 февраля, 2011 · Жалоба Сбрасывать периодически, период меньше интервала переполнения вочдога. Сбрасывать там, куда гарантированно придешь с периодом опять же меньше интервала переполнения вочдога. А где конкретно, ну кто ж его знает вашу программу :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kriv-73 0 6 февраля, 2011 Опубликовано 6 февраля, 2011 · Жалоба Сбрасывать можно только в main(), потому что прерывания продолжают вызываться и после разрушения стека. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 6 февраля, 2011 Опубликовано 6 февраля, 2011 · Жалоба Сбрасывать можно только в main(), потому что прерывания продолжают вызываться и после разрушения стека. Отлично :), а как вариант - прерывание накрылось медным тазом, а main() тупо крутиться. В случае наличия операционной системы варианты сброса WD следует начинать рассматривать с варианта соэдания самой низкоприоритетной задачи в которой осуществляется контроль работоспособности и основных задач и обработчиков прерываний. В этой-же задаче могут приниматься и какие-либо мягкие меры, например, обресетить сначала переферийное обороудование, вместо того, что-бы собаку спускать. Без операционки - в том-же main() хоть какой-то контроль за псевдопроцессами и только в случае их работоспособности сброс WD. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kriv-73 0 6 февраля, 2011 Опубликовано 6 февраля, 2011 · Жалоба Отлично :), а как вариант - прерывание накрылось медным тазом, а main() тупо крутиться. Обычно в main() ничего срочного не исполняется - в этом цикле повторяется инициализация периферии и настройка прерываний. В случае наличия операционной системы варианты сброса WD следует начинать рассматривать с варианта соэдания самой низкоприоритетной задачи в которой осуществляется контроль работоспособности и основных задач и обработчиков прерываний. Человек же писал - код простой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 6 февраля, 2011 Опубликовано 6 февраля, 2011 · Жалоба ... в этом цикле повторяется инициализация периферии и настройка прерываний. сколько же их можно настраивать? ;) Человек же писал - код простой. Но прерывания то есть, раз их настраиваем постоянно? Обычно в простых программах есть базовое прерывание таймера, в которое включаются фоновые сервисы периферии. Вот оно и должно обязательно контролироваться. Если прерывание происходит, то сброс WDT в основном цикле. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 6 февраля, 2011 Опубликовано 6 февраля, 2011 · Жалоба в этом цикле повторяется инициализация периферии и настройка прерываний. Жутчайшая муть :( :( :( - стучать по голове РАБОТАЮЩЕЙ периферии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 24 7 февраля, 2011 Опубликовано 7 февраля, 2011 · Жалоба Вообще накрывается все и работающая переферия и таймеры и main. Если удастся связать работу таймеров и main одним признаком и по нему глушить собаку- то будет хорошо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться