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

 
 
> NVIC_SystemReset - куда?
Allregia
сообщение Oct 20 2016, 06:22
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Не очень пойму из документации - NVIC_SystemReset полностью сбрасывает процессор (типа аппаратного ресета), или только перезапускает текущую программу по ее ресет-вектору?

Иными словами - если в прошивке внизу висит бутлоадер а выше основная программа, то вызов NVIC_SystemReset в бутлоадере понятно что приведет к его перезапуску, а куда приведет его вызов в основной программе - к переходу на ее ресет-вектор, т.е. ее перезапуску, или к начальному ресет-вектору проца, т.е. запуску бутлоадера?
Если первй вариант, то как сделать второй, т.е. как перейти к бутлоадеру из основной прграммы?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jcxz
сообщение Oct 20 2016, 07:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Allregia @ Oct 20 2016, 09:22) *
Не очень пойму из документации - NVIC_SystemReset полностью сбрасывает процессор (типа аппаратного ресета), или только перезапускает текущую программу по ее ресет-вектору?
Иными словами - если в прошивке внизу висит бутлоадер а выше основная программа, то вызов NVIC_SystemReset в

NVIC_SystemReset - это что? ISR? Или нет? Если ISR, то с какого бодуна он должен что-то сбрасывать или перезапускать?
Если нужен сброс МК, то самый надёжный путь - через WDT.

Цитата(Сергей Борщ @ Oct 20 2016, 09:50) *
Я не знаю, что делает NVIC_SystemReset, но установка бита SYSRESETREQ в регистре SCB_AIRCR сбрасывает все кроме RTC и содержимого регистра RCC_CSR. Не сбрасывается только состояние "залочен" у STM32F03x, т.е. для окончания процедуцры снятия защиты от чтения у этих кристаллов необходимо передернуть питание. У всех остальных достаточно взвести этот бит системного сброса.

Не спешите с выводами. Может конкретно у этого STM32 это и так, но сиё не верно для всех Cortex-M. Что за МК у автора как всегда остаётся только гадать (когда уже наконец-то чайники научатся указывать о каком МК, компиляторе и т.п. вопрос??? как будто форум здесь для телепатов...).

SYSRESETREQ на Tiva работает вроде нормально. А вот на NXP разных серий (LPC17xx, LPC43xx) у меня были какие-то проблемы с ним. Точно не помню, но на LPC43xx вроде вообще не работает, а на LPC17xx там вроде не всё сбрасывается. Так что на LPC использую WDT.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 20 2016, 08:07
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(jcxz @ Oct 20 2016, 10:48) *
NVIC_SystemReset - это что? ISR? Или нет? Если ISR, то с какого бодуна он должен что-то сбрасывать или перезапускать?
Если нужен сброс МК, то самый надёжный путь - через WDT.

Не позорьтесь, коллега. Пятисекундный поиск в гугле сразу показывает, что за зверь этот NVIC_SystemReset.
Go to the top of the page
 
+Quote Post



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

 


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


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