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

 
 
 
Reply to this topicStart new topic
> Сбросить процессор из программы
alt3857
сообщение Mar 1 2011, 14:56
Сообщение #1


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

Группа: Участник
Сообщений: 94
Регистрация: 21-04-10
Пользователь №: 56 794



Привет! Подскажите как программно сбросить процессор (из своего кода), например, пришла определенная команда по UART и по этой команде нужно сбросить проц.

Сообщение отредактировал alt3857 - Mar 1 2011, 14:57
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Mar 1 2011, 15:00
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



WDT


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
vmp
сообщение Mar 1 2011, 15:06
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Для кортексов-M3:
#include <core_cm3.h>
.......
NVIC_SystemReset();

Go to the top of the page
 
+Quote Post
alt3857
сообщение Mar 1 2011, 15:09
Сообщение #4


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

Группа: Участник
Сообщений: 94
Регистрация: 21-04-10
Пользователь №: 56 794



Спасибо, проц. как раз Cortex-M3
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 1 2011, 15:16
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



В некоторых процессорах есть возможность сбросить записью в спец. регистр.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
adventurer
сообщение Mar 14 2011, 09:40
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-12-08
Пользователь №: 42 458



Здравствуйте,
У меня тоже возник вопрос, извините если очень глупый, по поводу перегрузки контроллера из программы. Я использую в этих целях отдельный WDT на плате. Но иногда при такой перезагрузке у меня программа не стартует и как я понимаю попадаю не на нулевой адрес а на DataAbort .
Может кто то из уважаемых форумчан сталкивался с таким и может помочь понять в чем же дело ?
Используется проц LPC2468

Сообщение отредактировал adventurer - Mar 14 2011, 09:42
Go to the top of the page
 
+Quote Post
Wano
сообщение Mar 14 2011, 11:27
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 272
Регистрация: 3-06-06
Пользователь №: 17 737



Цитата(adventurer @ Mar 14 2011, 11:40) *
Здравствуйте,
Я использую в этих целях отдельный WDT на плате.


внешний RESET вроде самый главный. После этого проц стартует как только-что включенный и попасть в DAbort сразу не может. После старта выполняется вшитый загрузчик который "отоборажает" вектора из основной проги и дальше заново попадает на нулевой адрес, и только поооосле всё выполняется по программе. В подтверждение можете запустить в отладчике и поставить брэйкпоинт на "нуле".
Go to the top of the page
 
+Quote Post
adventurer
сообщение Mar 14 2011, 13:46
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-12-08
Пользователь №: 42 458



Кажется нашел причину, проблема была в отладочном кабеле к программатору, который, как я понимаю не позволял опустится Reset и контролер зависал. В об щем причину появления Data abort об’яснить не могу, но после замены кабеля все заработало. laughing.gif
Go to the top of the page
 
+Quote Post

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

 


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


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