Watchdog Flag im RCC gesetzt nach manuellem Reset

Gast #6287590
Lesenswert?

Hallo,

in meinem Programm (läuft auf STM32F4) löse ich an einer Stelle einen 
manuellen Reset aus, um aus der Applikation in den Bootloader zu 
gelangen. Die Applikation wird vom IWDG (independent watchdog) 
überwacht, welcher großzügig ausgelegt ist  (mehrere Sekunden).

Wenn ich in der Applikation jedoch nach dem Neustart 
__HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST) (d.h. IWDG Watchdog hat 
angeschlagen) abfrage, kriege ich ein gesetztes Flag zurück. Dass der 
Watchdog tatsächlich kam, ist aber unwahrscheinlich, da dieser sehr 
großzügig ausgelegt ist (mehrere Sekunden). Es ist auch kein zweites 
Reset das Watchdog-Bedingt ist zu beobachten.



Mit dem Code unten starte ich den µC neu.
1
void uC_Reset(void)
2
{
3
    __DSB();                                                                    
4
    SCB->AIRCR  = (USIGN32)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
5
                                       (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
6
                                        SCB_AIRCR_SYSRESETREQ_Msk );            
7
    
8
    __DSB();                                                          
9

10
    /* Wait until reset */
11
    for(;;)                                                           
12
    {
13
    __NOP();
14
    }
15
}

Lange Rede kurzer Sinn, weiß jemand warum nach einem Software-Reset das 
RCC_FLAG_IWDGRST gesetzt ist?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren