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

 
 
> software reset stm32
123kill12
сообщение Oct 31 2011, 11:21
Сообщение #1


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

Группа: Участник
Сообщений: 96
Регистрация: 12-05-10
Пользователь №: 57 217



Странно у меня работает программная перезагрузка. IWDT работает как надо. и даже когда делал WWDT тоже. но вот программная перезагрузка работает коряво.

сработает при первом запуске, перезагрузит и все. больше не срабатывает. может нужно какой то флаг сбросить. флаги в RCC->CSR (control status reg) я сбрасываю.

сброс генерирую так.
SCB->AIRCR|=0x05FA<<16 | SCB_AIRCR_SYSRESETREQ;

может нужно что то еще????
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AHTOXA
сообщение Oct 31 2011, 14:44
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



core_cm3.h:
Код
static __INLINE void NVIC_SystemReset(void)
{
  SCB->AIRCR  = ((0x5FA << SCB_AIRCR_VECTKEY_Pos)      |
                 (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
                 SCB_AIRCR_SYSRESETREQ_Msk);                   /* Keep priority group unchanged */
  __DSB();                                                     /* Ensure completion of memory access */              
  while(1);                                                    /* wait until reset */
}

Вроде работало как надо. Правда насчёт нескольких раз подряд не уверен - не пробовал.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post



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

 


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


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