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

 
 
 
Reply to this topicStart new topic
> Watchdog, At91Sam9
wmakc
сообщение May 22 2011, 18:00
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 2-03-10
Пользователь №: 55 768



в Атмеловском загрузчике поменял строчку AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS;
на AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDV | AT91C_WDTC_WDD | AT91C_WDTC_WDRSTEN;

в самой программе периодически сбрасываю таймер:
AT91C_BASE_WDTC->WDTC_WDCR = AT91C_WDTC_KEY | AT91C_WDTC_WDRSTT;

Проверял, если не сбрасывать таймер, то он перезапускает контроллер. Все как и должно быть. Но в программе, которую я использую, он не всегда срабатывает. То есть существуют ситуации, когда контролер зависает, и перезапускается только через пару часов. Такое может быть или же watchdog срабатывает всегда и я что-то не так делаю?
Go to the top of the page
 
+Quote Post
DmitryM
сообщение May 22 2011, 18:12
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(wmakc @ May 22 2011, 22:00) *
в Атмеловском загрузчике поменял строчку AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS;
на AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDV | AT91C_WDTC_WDD | AT91C_WDTC_WDRSTEN;

в самой программе периодически сбрасываю таймер:
AT91C_BASE_WDTC->WDTC_WDCR = AT91C_WDTC_KEY | AT91C_WDTC_WDRSTT;

Проверял, если не сбрасывать таймер, то он перезапускает контроллер. Все как и должно быть. Но в программе, которую я использую, он не всегда срабатывает. То есть существуют ситуации, когда контролер зависает, и перезапускается только через пару часов. Такое может быть или же watchdog срабатывает всегда и я что-то не так делаю?

а AT91C_WDTC_WDV и AT91C_WDTC_WDD правильно задаются? Я с WDT пока не замечал шаманств. Чему соответствуют указанные поля?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 22 2011, 18:16
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(wmakc @ May 22 2011, 22:00) *
То есть существуют ситуации, когда контролер зависает, и перезапускается только через пару часов.

Причину зависания установили?
Go to the top of the page
 
+Quote Post
wmakc
сообщение May 22 2011, 18:24
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 2-03-10
Пользователь №: 55 768



если я правильно перевел информацию в документации, то wdv - это максимальное время работы таймера. wdd - это время в течение которого, таймер должен быть сброшен, иначе он вернет ошибку. Сообщать об ошибках мне не нужно, поэтому я их не меняю. По умолчанию они одинаковые и настроенны на максимум, на 16 секунд.

Цитата(aaarrr @ May 22 2011, 22:16) *
Причину зависания установили?

Еще пока нет, предположительно при включении не инициализируется матрица, то есть не возвращает необходимые значения по TWI. Из-за этого и происходит зацикливание в программе.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 22 2011, 18:51
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(wmakc @ May 22 2011, 22:24) *
если я правильно перевел информацию в документации, то wdv - это максимальное время работы таймера. wdd - это время в течение которого, таймер должен быть сброшен, иначе он вернет ошибку. Сообщать об ошибках мне не нужно, поэтому я их не меняю. По умолчанию они одинаковые и настроенны на максимум, на 16 секунд.

Он не "вернет ошибку", а сбросит процессор, если это действие разрешено (WDRSTEN). С оконным режимом было бы надежнее.

Я бы на вашем месте проверил еще источник SLCK, если в качестве такового используется кварц.
Go to the top of the page
 
+Quote Post
wmakc
сообщение May 22 2011, 19:06
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 2-03-10
Пользователь №: 55 768



То есть как я понимаю, мне необходимо установить wdd меньше wdv?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 22 2011, 19:14
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(wmakc @ May 22 2011, 23:06) *
То есть как я понимаю, мне необходимо установить wdd меньше wdv?

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

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:43
Рейтинг@Mail.ru


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