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

 
 
 
Reply to this topicStart new topic
> WDT trouble, Не могу разрешить работу "собаки"
Nikitoc
сообщение Apr 28 2010, 13:54
Сообщение #1


Местный
***

Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367



Здрасте всем! Пытаюсь разрешить WDT вот в такой процедурке:
Код
/***********************************************************************/
void watchdogEnable(void)
{
  AT91C_BASE_WDTC->WDTC_WDMR =  AT91C_WDTC_WDRSTEN;
}
/***********************************************************************/

При этом код компилится не хочет, компилятор выдает сообщение:
Код
Library reports error: _use_no_semihosting_swi was requested, but time was referenced

Что это такое (и как с ним бороться), подскажите, пожалуйста.
P.S. Забыл сказать, что камень at91sam7s256, работаю в KEIL 3

Сообщение отредактировал Nikitoc - Apr 28 2010, 13:57
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 28 2010, 14:07
Сообщение #2


Гуру
******

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



Цитата(Nikitoc @ Apr 28 2010, 17:54) *
...
При этом код компилится не хочет, компилятор выдает сообщение:
Код
Library reports error: _use_no_semihosting_swi was requested, but time was referenced

А если убрать watchdogEnable - компилируется? Если так, то это какой-то хитрый глюк Keil'а.
Go to the top of the page
 
+Quote Post
Nikitoc
сообщение Apr 28 2010, 14:33
Сообщение #3


Местный
***

Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367



Хм. Проблема была в том, что я пытался скомпилировать файл, в котором вызывал ф-цию time(), которой в файле не было (удалил за ненадобностью :-) ). При этом стандартного сообщения о том, что я вызываю несуществующую ф-цию компилятор мне почему-то не выдал...
Но при этом строчка
Код
AT91C_BASE_WDTC->WDTC_WDMR =  AT91C_WDTC_WDRSTEN;

никакого действия на регистр WDTC_WDMR не оказывает (в отладчике не изменяется содержимое).
P.S. Да вот нашел еще такое в даташите "The Watchdog Mode Register (WDT_MR) can be written only once" Не могли бы Вы объяснить о чем речь?

Сообщение отредактировал Nikitoc - Apr 28 2010, 14:41
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 28 2010, 14:52
Сообщение #4


Гуру
******

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



Цитата(Nikitoc @ Apr 28 2010, 18:33) *
Не могли бы Вы объяснить о чем речь?

Это значит, что после Power On Reset его можно записать только один раз.
Go to the top of the page
 
+Quote Post
Nikitoc
сообщение Apr 28 2010, 15:45
Сообщение #5


Местный
***

Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367



Невесело это. Я хотел его использовать для организации программного сброса... А, получается, что включить/отключить на лету его невозможно. Даже изменить период сброса никак... А существуют ли какие-нибудь варианты программного сброса этого камня?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 28 2010, 15:49
Сообщение #6


Гуру
******

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



Цитата(Nikitoc @ Apr 28 2010, 19:45) *
А существуют ли какие-нибудь варианты программного сброса этого камня?

Существуют. Почитайте раздел Reset Controller мануала.
Go to the top of the page
 
+Quote Post
Nikitoc
сообщение Apr 28 2010, 16:22
Сообщение #7


Местный
***

Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367



Самое интересное, что я этот раздел читал blush.gif
Спасибо. Все работает.

Сообщение отредактировал Nikitoc - Apr 28 2010, 16:22
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 19:33
Рейтинг@Mail.ru


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