기본 및 보조 인터럽트

GPIO 인터럽트 처리는 기본적으로 2단계 프로세스입니다. GPIO 프레임워크 확장(GpioClx) ISR(인터럽트 서비스 루틴)을 실행하는 GPIO(범용 I/O) 컨트롤러의 인터럽트를 기본 인터럽트라고 합니다. 이 ISR은 인터럽트 GPIO 핀을 GSI(전역 시스템 인터럽트)에 매핑하고 이 GSI를 HAL(하드웨어 추상화 계층)에 전달합니다. HAL은 이 GSI를 통해 GPIO 핀에 논리적으로 연결된 두 번째 ISR을 실행하는 보조 인터럽트 를 생성합니다. 이 프로세스는 GPIO 드라이버 지원 개요의 다이어그램에 나와 있습니다.

GpioClx는 GPIO 컨트롤러가 인터럽트 입력으로 구성된 GPIO 핀을 통해 수신하는 ISR-서비스 인터럽트 요청을 구현합니다. 주변 디바이스가 GPIO 핀에서 인터럽트를 어설션하고 GPIO 컨트롤러에서 인터럽트를 사용하도록 설정하고 마스크를 해제하면 GPIO 컨트롤러 하드웨어가 프로세서에 대한 인터럽트를 어설션합니다. 이 인터럽트 대응으로 GpioClx의 ISR은 GPIO 컨트롤러를 쿼리하여 인터럽트를 생성한 GPIO 핀을 식별한 다음 이 핀에 할당된 GSI를 결정합니다. GpioClx ISR은 이 GSI를 HAL에 전달하고 HAL은 GSI에 논리적으로 연결된 ISR을 호출합니다.

일반적으로 이 두 번째 ISR은 GPIO 핀에서 인터럽트 어설션된 주변 디바이스의 드라이버에 속합니다. 주변 장치 드라이버가 ISR을 GPIO 인터럽트 핀에 논리적으로 연결하는 방법에 대한 자세한 내용은 GPIO 기반 인터럽트 리소스를 참조하세요.