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

 
 
> 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
Ответов
Сергей Борщ
сообщение Oct 20 2016, 06:50
Сообщение #2


Гуру
******

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



Я не знаю, что делает NVIC_SystemReset, но установка бита SYSRESETREQ в регистре SCB_AIRCR сбрасывает все кроме RTC и содержимого регистра RCC_CSR. Не сбрасывается только состояние "залочен" у STM32F03x, т.е. для окончания процедуцры снятия защиты от чтения у этих кристаллов необходимо передернуть питание. У всех остальных достаточно взвести этот бит системного сброса.


--------------------
На любой вопрос даю любой ответ
"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
scifi
сообщение Oct 20 2016, 07:02
Сообщение #3


Гуру
******

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



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

Не спешите с выводами. Как-то раз на STM32 по ошибке подтянул сигнал RST вверх (сильно подтянул). SYSRESETREQ дёргал его вниз, но не получалось. Соответственно, никакого сброса не было laughing.gif
Опять же, теоретически речь может идти о процессоре, встроенном в самодельную систему на FPGA. Там сигнал программного сброса может делать всё, что угодно, например, моргать лампочкой biggrin.gif
Go to the top of the page
 
+Quote Post
gerber
сообщение Oct 20 2016, 07:26
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088



Цитата(scifi @ Oct 20 2016, 10:02) *
Не спешите с выводами. Как-то раз на STM32 по ошибке подтянул сигнал RST вверх (сильно подтянул). SYSRESETREQ дёргал его вниз, но не получалось. Соответственно, никакого сброса не было laughing.gif

Согласен, сам на такое нарывался на STM32 (вместо open-drain супервизора запаяли по ошибке push-pull). В STM32 программный RESET выводится на ногу RESET, что позволяет сбрасывать не только сам контроллер, но и подключенную внешнюю периферию, если она есть.


--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 05:42
Рейтинг@Mail.ru


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