Цитата(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.