Interrupt
==================================Outline====================================
Interrupt
----------------------------------------------------------------------------
Interrupt
ARM은 전형적인 폰노이먼 구조를 띈다.
// PMC(Power Management Controller)
// AIC(Advanced Interrupt Controller)
Interrupt를 사용해 보자.
FIQ가 IRQ보다 속도가 빠르다.
High-drive는 최대 16mA전류를 방출할 수 있다.
//나머지 핀들은 8mA이다.
총 핀들의 방출 전류의 합은 150mA를 넘을 수 없다.
ARM에서는 인터럽트 함수 이름을 사용자가 정의할 수 있다.
//ATmega는 인터럽트 함수 이름이 정의되어 있다.
C에서 함수 자체는 주소 값을 뜻함으로 interrupt의 주소에 사용자가 만든 함수를 넣으면 사용자가 작성한 함수가 호출되게 된다.
//ATmega와 ARM의 인터럽트 사용법이 다른 이유는 사용하는 core가 다르기 때문이다.
검출 모드 설정(트리거 설정)
FIQ가 가장 우선시 되고 PRIOR은 7이 우선순위이고 0으로 갈수록 우선순위가 낮아진다.
• IRQID: Current Interrupt Identifier
The Interrupt Status Register returns the current interrupt source number.
PID 2번에 맞춰서 짜겠다.
PSUDO CODE란 인간이 인지할 수 있는 문장으로 어떠한 코드를 작성할 것인지 적어 놓은 것이다.
주어진 PSUDO CODE에 따른 코드는 다음과 같다.
#include "AIC.h" |