Skip to main content
kay
Associate III
June 16, 2009
Question

Software reset does not work as i would wish

  • June 16, 2009
  • 7 replies
  • 1467 views
Posted on June 16, 2009 at 13:25

Software reset does not work as i would wish

    This topic has been closed for replies.

    7 replies

    sjo
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 13:14

    You may not get a reset if you have a debugger connected and effecting the reset line.

    software reset worked fine for us after making sure the debugger was not connected, eg. what would happen in the real world.

    Cheers

    sjo

    kay
    kayAuthor
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 13:14

    Hello,

    we use a software reset in some cases to reset our STM32 uC oing this:

    *((unsigned int*)0xE000ED0C) = 0x05FA0001;

    And we have very very very very big problems with that. It seems as if the reset only resets the core and not any peripheral like timer or even PLL settings.

    After a Hardware reset applikation always runs fine, software reset fails.

    Every time we have to find the new reason again and handle it in startup code. isnt there a possibilitiy to do a REAL reset by software?????

    :-Y

    [ This message was edited by: Flasher2 on 16-06-2009 15:39 ]

    benedwards19
    Associate
    May 17, 2011
    Posted on May 17, 2011 at 13:14

    Well, there's always the brute force method: use an I/O pin with a little bit of external circuitry to pull down the external reset line. Once the chip goes into reset the I/O pin will revert to a high impedance input and release the reset line.

    kay
    kayAuthor
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 13:14

    Debugger is not connected but anyway reset doesnt work :(

    sjo
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 13:14

    Well if the debugger is not connected - do you have anything on the reset line at all?

    Cheers

    sjo

    sjo
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 13:14

    If that still does not work you could use a watchdog to reset the system.

    Cheers

    sjo

    joseph239955
    Visitor II
    May 17, 2011
    Posted on May 17, 2011 at 13:14

    If you want to reset the whole system, please try:

    *((volatile unsigned int*)0xE000ED0C) = 0x05FA0004;

    This generate a system reset request rather then just reset the core.

    (and don't forget using ''volatile'')