Forum: Mikrocontroller und Digitale Elektronik Watchdog Flag im RCC gesetzt nach manuellem Reset


von pc (Gast)


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?

von pc (Gast)


Lesenswert?

Scheint nicht mehr aufzutreten und das 
__HAL_RCC_GET_FLAG(RCC_FLAG_SFTRST) ist gesetzt, so wie man das erwarten 
würde...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.