REKLAMA

Czas na przerwanie

Obsługa przerwań jest jedną z kluczowych operacji, z jaką musi poradzić sobie system operacyjny. Implementacja przerwań w Linuksie jest zależna od architektury całego systemu, a w szczególności od procesora, kontrolera/kontrolerów przerwań i sposobu ich połączenia. Niniejszy artykuł podzielony jest na dwie części. W pierwszej krótko opisano popularnie stosowany w systemach ARMowych kontroler przerwań GIC. Druga natomiast traktuje o obsłudze przerwań w Linuksie, przybliżając takie zagadnienia jak: domeny przerwań, połączenia kaskadowe, rozdzielenie obsługi przerwania na części (tzw. top, bottom halves), a także trasowanie przerwań.

W artykule przybliżono zarówno mechanizmy generyczne, jak i zależne od architektury – skupiono się głównie na SoCach ARM/ARM64 oraz kontrolerach przerwań typu GIC...

Zagadnienia poruszane w tym artykule:

  • Kontrolery przerwań – GICvX;
  • Jak sygnalizowane są przerwania?
  • Grupy przerwań;
  • Rodzaje przerwań;
  • Linuxowe domeny IRQ;
  • Przykładowe domeny w Armadzie-8K;
  • Połączenia kaskadowe;
  • Górna i dolna połówka;
  • Trasowanie przerwań – irq affinity;

Artykuł znajduje się w miesięczniku "Programista" nr 67 (12/2017). Jest to wydanie z przełomu stycznia i lutego 2018 r. Szczegółowy spis treści: http://programistamag.pl/programista-12-2017-67/

Autorem artykułu jest Grzegorz Jaszczyk. Programista systemów wbudowanych w krakowskiej firmie Semihalf. Zajmuje się programowaniem platformowym dla systemów bazujących na procesorach ARM (Linux, U-Boot, ATF). Prywatnie ceni sobie aktywny wypoczynek i walory naturalnego krajobrazu.

>>FRAGMENT ARTYKUŁU DO POBRANIA<<