Wpis z mikrobloga

Mam kawałek kodu, który wprowadza stm32f412 w stan uśpienia, wybudza go po kilku sekundach, a następnie wywołuje na nim software reset za pomocą NVIC_SystemReset(); i po tym resecie całość funkcjonalności wstaje, lecz nie jestem już w stanie połączyć się z prockiem za pomocą st-link'a. Konieczny jest hardware reset - odłączenie zasilania. Coś ewidentnie się po tym soft-resecie nie podnosi, ktoś ma pomysł co to może być? Próbowałem wrzucić do rejestru DBGMCU->CR bit DBG_SLEEP, ale chyba nie w tym rzecz.
#elektronika #stm32 #programowanie #embedded
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@karololo: czy po tym resecie procesor jest uśpiony? Generalnie wspomniany bit zapobiega zerwaniu trwającej sesji debugowania w momencie wejścia w uśpienie. Natomiast jeśli procesor jest uśpiony i podłączysz kabelek st-linka, to nie dostaniesz się do procka przez SWD jeśli nie sterujesz też linii resetu. Co dokładnie masz na myśli przez połączenie st-linkiem? Jakich narzędzi używasz? OpenOCD?
  • Odpowiedz
@zarowka12: Po resecie jest podobne działanie, czyli procek wchodzi w stan uśpienia, wybudza się po kilku sekundach i wraca do normalnej pracy, już bez kolejnego resetu - w tym momencie już nie jestem w stanie go debugować, używam programatora st-link v2 i softu ST-Link Utility, pod spodem jest gdb. Ale to nie kwestia konkretnego narzędzia, raczej kwestia czegoś w kodzie.
  • Odpowiedz
@karololo: ST-Link Utility nie służy do debugowania i nie ma związku z gdb. Pewnie miałeś na myśli ST-Link server, który do pracy wymaga zainstalowanego wcześniej Utility. W każdym razie poszedłbym tropem tego komunikatu. Czy masz podłączoną linię reset do programatora? Jeśli tak, to można zaznaczyć opcję Connect Under Reset i Utility powinno dać radę się połączyć z mikrokontrolerem.
  • Odpowiedz
@karololo: ja również nie :) Mam sytuację, gdzie właśnie procesor budzi się i trudno się z nim połączyć. Niestety nie mam wyprowadzonego resetu i trzeba wielokrotnie próbować odłączać i podłączać kabelki SWD jak i sam st-link. Może to jakaś niedoróbka.
  • Odpowiedz