logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

STM32F4 - pytanie o przerwania systemowe i błedów.

felekfala 09 Lip 2012 16:30 1573 3
REKLAMA
  • #1 11087318
    felekfala
    Poziom 19  
    Posty: 417
    Pomógł: 24
    Ocena: 217
    Witam,
    jakoś nigdy nie zagłębiałem się bardziej w temat System handlers i Fault handlers ale teraz powstało parę pytań.
    Załóżmy że zbudowałem urządzenie, które ma być skierowane do produkcji. Zostało ono prze zemnie przetestowane i działa prawidło. Stąd czy powinienem jakoś zwrócić uwagę na wymienione prze zemnie grupy przerwań, czy jeśli system jest już prawidłowo zaprojektowany to raczej nie mają one prawa wystąpić, i nie trzeba się nimi martwić? Podczas projektowania układu kilkukrotnie zdarzyło mi się przez błędy w programie wywołać np Hard fault, ale po wyeliminowaniu błędów problem ustąpił.
    Ja w zasadzie przy każdym wektorze przerwania w tych grupach zastosowałem martwą pętlę.

    Do czego jest wykorzystane przerwanie niemaskowalne NMI? Z tego co wyczytałem w RM to wywoływane ono jest w sytuacji awarii taktowania, czy do czegoś jeszcze?

    Pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 11088126
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    felekfala napisał:
    Witam,
    jakoś nigdy nie zagłębiałem się bardziej w temat System handlers i Fault handlers ale teraz powstało parę pytań.
    Załóżmy że zbudowałem urządzenie, które ma być skierowane do produkcji. Zostało ono prze zemnie przetestowane i działa prawidło. Stąd czy powinienem jakoś zwrócić uwagę na wymienione prze zemnie grupy przerwań, czy jeśli system jest już prawidłowo zaprojektowany to raczej nie mają one prawa wystąpić, i nie trzeba się nimi martwić? Podczas projektowania układu kilkukrotnie zdarzyło mi się przez błędy w programie wywołać np Hard fault, ale po wyeliminowaniu błędów problem ustąpił.
    Ja w zasadzie przy każdym wektorze przerwania w tych grupach zastosowałem martwą pętlę.

    To zależy od aplikacji... Jak masz jakiś sterownik lasera, to w obsłudze takich błędów możesz go np wyłączyć. Możesz przez jakiś interfejs wysłać informację że "nastąpił błąd, skontaktuj się z obsługą". Co kto lubi (;

    felekfala napisał:
    Do czego jest wykorzystane przerwanie niemaskowalne NMI? Z tego co wyczytałem w RM to wywoływane ono jest w sytuacji awarii taktowania, czy do czegoś jeszcze?

    NMI może być podpięte zależnie od producenta danego układu, skoro w RM pisze że jest to system zabezpieczeń zegara, to tak właśnie jest <:

    4\/3!!
  • REKLAMA
  • Pomocny post
    #3 11088337
    kemot55
    Poziom 31  
    Posty: 1306
    Pomógł: 184
    Ocena: 147
    Jeżeli uruchomiłeś "system ochrony" zegara "głównego" (Clock security system (CSS)) i zegar główny zatrzyma się (np. dotkniesz palcami wyprowadzeń kwarcu) to system wywoła NMI, w którym to możesz zadecydować czy próbować przełączyć się z powrotem na zegar główny (np. kwarc) czy też zgłosić błąd (oczywiście bez zatrzymana procesora bo w ciągu kilku us uruchamia się zegar HSI). Generalnie wg mnie system przerwań niemaskowalnych jest niezłym wynalazkiem na poziomie procesorów, które przyjmują ostatnio status "powszechnego zastosowania"
  • #4 11095077
    felekfala
    Poziom 19  
    Posty: 417
    Pomógł: 24
    Ocena: 217
    Czyli podsumowując jeśli program uC został napisany prawidłowo oraz, nie dochodzi do sytuacji awaryjnych w stylu np. odłączenie kwarcu, przerwania te się nie pojawiają się.
    Funkcje obsługi tych przerwań można również wykorzystać w celu np. bezpiecznego wyłączenia sterowanego urządzenia, albo można tez dać tam martwą pętle by "zawiesić uC"
    Co wy robicie z funkcjami obsługi tych przerwań?
REKLAMA