카드뉴스










NVIC 인터럽트 정리: 우선순위와 핸들러 흐름 이해하기를 검색했다면 먼저 봐야 할 기준
NVIC 인터럽트는 주변장치 이벤트를 CPU 실행 흐름으로 연결하는 관문입니다. 타이머, UART, GPIO 같은 주변장치에서 이벤트가 생겼다고 CPU가 자동으로 모든 일을 처리하는 것은 아닙니다. 인터럽트 라인이 활성화되고 NVIC 설정을 통과해야 ISR로 흐름이 넘어갑니다. 이 주제는 단어 뜻만 외우면 금방 흐려지기 때문에 NVIC, 인터럽트, 우선순위 같은 기준을 실제 업무 흐름과 함께 보는 편이 좋습니다.
먼저 구분할 기준
처음에는 enable, pending, priority, handler 네 단어만 분리해도 좋습니다. 인터럽트를 켰는지, 요청이 걸렸는지, 어떤 우선순위인지, 실제 함수 이름이 벡터 테이블과 맞는지가 기본 확인 순서입니다. 처음 공부할 때는 용어를 한꺼번에 외우기보다 어디에서 입력이 생기고, 누가 판단하며, 어떤 산출물로 남는지 따라가면 이해가 빨라집니다.
NVIC, 인터럽트, 우선순위, ISR를 검색하는 사람이라면 대부분 ‘이게 정확히 무슨 뜻인가’와 ‘실제로 어디에 쓰이나’를 동시에 궁금해합니다. 그래서 개념 설명만 읽고 끝내기보다 입력 조건, 제한 조건, 결과 확인 방법을 같이 적어두는 것이 좋습니다. 이렇게 정리하면 같은 내용을 면접, 포트폴리오, 프로젝트 회고에 다시 사용할 수 있습니다.
실무에서 확인할 것
실무에서 흔한 오류는 주변장치 플래그만 보고 NVIC enable을 놓치거나, ISR 안에서 플래그를 지우지 않아 계속 진입하는 경우입니다. 우선순위를 잘못 주면 중요한 제어 주기가 밀릴 수도 있습니다. 특히 전기전자와 임베디드 분야는 문서, 코드, 회로, 측정 결과가 따로 놀면 문제가 늦게 발견됩니다. 작은 기능이라도 확인 순서를 기록하는 습관이 중요합니다.
문제가 생겼을 때는 한 번에 결론을 내리지 말고 조건을 쪼개야 합니다. 사양이 잘못된 것인지, 구현이 빠진 것인지, 테스트 조건이 다른 것인지, 측정 방법이 흔들린 것인지 나누어 보면 원인이 좁혀집니다. 이 과정은 초보자에게 느리게 보이지만 실제 프로젝트에서는 가장 시간을 아끼는 방식입니다.
처음 공부할 때 순서
간단한 GPIO EXTI 예제를 만들고 버튼을 눌렀을 때 pending bit, ISR 진입, 플래그 클리어를 디버거로 확인해보면 흐름이 잡힙니다. 그 다음 타이머와 UART로 확장하면 같은 구조가 반복됩니다. 개념을 읽은 뒤에는 예제를 하나 정해 직접 손으로 바꿔보는 것이 좋습니다. 설정값을 바꾸고 결과를 비교하면 책에서 보던 용어가 실제 판단 기준으로 바뀝니다.
처음부터 완성도 높은 결과물을 만들려고 하면 부담이 커집니다. 대신 한 가지 기능을 정하고 정상 조건, 경계 조건, 오류 조건을 나눠 확인해보세요. 표나 짧은 로그로 남겨도 충분합니다. 중요한 것은 멋진 문장보다 재현 가능한 기록입니다.
포트폴리오와 면접에서 말할 포인트
포트폴리오에서는 인터럽트가 동작했다는 결과보다 어떤 레지스터와 플래그를 확인했는지 남기는 편이 좋습니다. ISR에서는 짧게 처리하고 긴 작업은 main loop나 task로 넘겼다는 판단도 함께 설명할 수 있습니다. 결국 좋은 설명은 어려운 단어를 많이 쓰는 것이 아니라, 내가 어떤 조건을 보고 어떤 선택을 했는지 보여주는 데서 나옵니다.
카드뉴스는 큰 그림을 빠르게 잡기 위한 자료이고, 아래 본문은 검색으로 들어온 사람이 한 번 더 판단할 수 있도록 만든 보충 설명입니다. 관련 주제를 이어서 볼 때도 용어 암기보다 실제 입력, 처리, 출력, 검증 흐름을 기준으로 연결해보면 학습 방향이 더 분명해집니다.