cancel
Showing results for 
Search instead for 
Did you mean: 

Can't cause system reboot

kutnickg
Associate II
Posted on July 07, 2009 at 15:41

Can't cause system reboot

8 REPLIES 8
kutnickg
Associate II
Posted on May 17, 2011 at 13:16

For some reason my board seems to be ignoring any kind of software generated reboots. This includes triggering from the IWDG, WWDG, and writing 1 to bit 2 of SCB_AIRCR. Writing 1 to bit 0 of SCB_AIRCR does seem to cause a reboot, but core only (no peripherals). I have tracked the WWDG downcounter and active bit to show that it is in fact doing something, but no reset.

I'm using the IAR board STM3210E-SK/IAR. What's even stranger is that sometimes the board will get in a state where even the physical reset button doesn't reset it and it has to be power cycled.

Does anyone have any ideas what could be causing these issues, or some suggestions of things to try? If all else fails, is there a reliable software sequence to enter a reset-like state? IE, de-initializing all of the periphals, shutting off their clocks, loading the CPU registers with proper initialization values and branching to the reset vector location.

I'd like to have SW reset available so that I can send the board a command over USART0 to reset instead of having to press a button.

swhite
Associate III
Posted on May 17, 2011 at 13:16

Quote:

On 02-07-2009 at 22:19, Anonymous wrote:

Does anyone have any ideas what could be causing these issues...

Sounds to me like the NRST pin on the uP is being held high (i.e. cannot go low to cause a reset).

ccowdery9
Associate III
Posted on May 17, 2011 at 13:16

I just call this library function:

NVIC_GenerateSystemReset();

If it doesn't work, you have a hardware fault.

Chris.

joseph239955
Associate II
Posted on May 17, 2011 at 13:16

Have you try using bit 2 of SCB_AIRCR (SYSRESETREQ)?

kutnickg
Associate II
Posted on May 17, 2011 at 13:16

Quote:

On 03-07-2009 at 12:44, Anonymous wrote:

Have you try using bit 2 of SCB_AIRCR (SYSRESETREQ)?

Yeah, it doesn't work.

Quote:

On 06-07-2009 at 14:39, Anonymous wrote:

I just call this library function:

NVIC_GenerateSystemReset();

If it doesn't work, you have a hardware fault.

Chris.

I've seen this function mentioned before and it is not present in the STM32 core/peripheral library that I have (version 3.0). Was this function perhaps replaced by another one? On the other hand, I don't see any library code using SYSRESETREQ or VECTRESET outside of defining it.

Thanks for the suggestions, I'm going to be using another eval board soon (ST's reference board) and I'll see if that has the same problem or not. It seems strange to me that a reset that should be entirely internal would even depend on nRST, and the button does work although not all of the time. Maybe these two issues really are related.

swhite
Associate III
Posted on May 17, 2011 at 13:16

Quote:

I've seen this function mentioned before and it is not present in the STM32 core/peripheral library that I have (version 3.0).

Yes it is. Its called NVIC_SystemReset() and I've used it. That said it doesn't seem to be documented in the help file.

All you need to do is call that function (no arguments).

Edit: The function prototype is in Libraries\CMSIS\Core\CM3\core_cm3.h

[ This message was edited by: swhite on 07-07-2009 00:08 ]

kutnickg
Associate II
Posted on May 17, 2011 at 13:16

That isn't the function I was told to try, they must have changed the name at some point. Nonetheless, it doesn't work, which isn't really surprising.

Hopefully I'll have that other board very soon and can test there.

kutnickg
Associate II
Posted on May 17, 2011 at 13:16

Reset is working on the STM3210E-EVAL board I just received. Thanks for all the help.