Mam program 3.x ChibiOS na mikrokontrolera STM32F4 gdzie używam watchdog IWDG zresetować MCU o błędach tak:Wyłączenie STM32 IWDG podczas debugowania
int main() {
iwdgInit();
iwdgStart(&IWDGD, &wd_cfg);
while(true) {
// ... do stuff
}
}
Jeśli teraz dołączyć moje i debugger , w dowolnym momencie, zatrzymaj program (ręcznie lub za pomocą punktu przerwania), mikrokontroler zresetuje się po upływie limitu czasu zdefiniowanego przez konfigurację watchdoga (i dlatego powoduje problemy w procesie debugowania)
Jak mogę wyłączyć to zachowanie, np. jak mogę wyłączyć IWDG, gdy rdzeń jest zatrzymany z powodu debuggera?
Próbowałem wyłączyć całkowicie, jednak muszę go uruchomić, aby złapać niechciane resetowania IWDG.
IWDG jest domyślnie wyłączone, więc może po prostu zostawić to wyłączone do czasu rozpoczęcia badania końcowego kodu. Jeśli chcesz zrobić tutoriale dla STM, jesteś o wiele lepszy na wiki STM32. Przepełnienie stosu jest pytaniem i pytaniem, a nie tutorialem. – Olaf
@Olaf a) Zapewniam, że moje samouczki wyglądają zupełnie inaczej. Jest to konkretne pytanie z konkretną odpowiedzią, innymi słowy pytania i odpowiedzi. Co znaczy wiki STM32? b) Twoje założenie jest błędne. Podczas gdy we wczesnej fazie rozwoju to może działać, mam sporo zastosowań, w których * potrzebuję * IWDG do resetowania, jeśli skończy się czas WDG, np. pozyskać dane o (niewłaściwym) zachowaniu w warunkach dużej aktywności sieciowej (czy watchdog zresetował się nieumyślnie?). Oczekiwanie na produkcję z tym byłoby głupie. Również odpowiedź na to pytanie jest bardzo ważna dla testów produkcyjnych. –
@Olaf Więc, żadne pytanie STM32 nie musi w ogóle * zostać poproszone * ponieważ wszystko jest w dokumentach? Naprawdę nie sądzę, że ten argument działa. Jeśli uważasz, że to jest pytanie z niewystarczającą ilością badań, głosuj i/lub głosuj na zamknięcie. Zakładam, że już to zrobiłeś. Kiedy to robisz, napiszę więcej rozwiązań dla rzeczywistych problemów, przepraszam ... –