공부/SAM7S 2012. 11. 14. 23:53

4 인터럽트

 

4.1 특징 및 기능

인터럽트 source 는 32이며, 8레벨의 우선순위가 있다. 각각의 인터럽트를 살리는 것이 가능하고, 벡터 인터럽트 및 빠르게 인터럽트를 처리하는 인터럽트도 있다. 인터럽트가 발생하면 그 조건을 판단하여 nFIQ,nIRQ인터럽트가 발생한다. 외부 입력 인터럽트는 high level, low level, positive edge, negative edge 중 하나를 선택하며, 인터럽트 source 0 는 무조건 FIQ 에 사용한다. 인터럽트 source 1은 특정 주변장치(PMC, DBGU, RTT, PIT, EFC)와 연결이 되어 있어서 인터럽트 발생시 인터럽트 루틴에서 어떤 주변장치의 인터럽트인지 판단하여 해당 조건의 처리를 실시 해야 한다. 인터럽트 source 2~31은 주변장치와 외부 인터럽트로 사용한다.

AIC_SMRx를 이용해 내부 인터럽트를 레벨 또는 트리거 모드중 어떤 것을 사용 할 것인 결정하고, 외부 인터럽트는 high level, low level, positive edge, negative edge 중 하나를 선택 한다.

또한 edge detector는 AIC_ISCR,AIC_ICCR로 설정해 edge에 따른 제어를 할 수 있다.

 

nIRQ 인터럽트가 처리중에 좀더 높은 인터럽가 발생하면 좀더 높은 인터럽트를 먼저 처리 하며, 낮은 인터럽가 발생 하면, 해당 인터럽트는 AIC_EOICR에 기억되어 인터럽트 처리가 가능할 때까지 대기 하다 실행한다. 인터럽트 중간에 발생하면 이전 인터럽트의 상태가 8번까지 내부 스택에 저장 되어질수 있다. nFIQ 인터럽트가 발생되면 nIRQ보다 nFIQ가 먼저 실행된다.

Spurious 인터럽트는 인터럽가 발생되었는데 인터럽트 처리루틴에서는 인터럽트가 존재 하지 않는 상태를 만한다. 이때는 임시로 처리하고 최대한 빨리 원리 루틴으로 돌아 간다.

 

 

 

 

AIC Source Mode Register

  • SRCTYPE : 인터럽트 소스의 형태

  • PRIOR : 우선순위 0~7 까지 7이 가장 높음

 

AIC Source Vector Register

  • 인터럽트 백터의 어드레스를 지정한다.

 

 

AIC Interrupt Vector Register

- 현재 발생된 인터러트 백터, 에러인경운 AIC_SPU 레지스터값을 가짐

 

AIC FIQ Vector Register

- 현재 발생된 인터러트 백터, 에러인경운 AIC_SPU 레지스터값을 가짐

 

 

 

 

AIC Interrupt Status Register

현재 발생된 인터럽트 소스 번호를 알려줌

 

AIC Interrupt Pending Register

1 : 인터럽트가 대기중인 것을 알려줌

 

AIC Interrupt Mask Register

1 : 인터럽트가 사용가능한지 확인한다.

 

AIC Core Interrupt Status Register

nIRQ: nIRQ가 발생함, nFIQ : nFIQ가 발생함

 

AIC Interrupt Enable Command Register

1 : 인터럽트를 사용가능 하도록 설정 한다.

 

AIC Interrupt Disable Command Register

1 : 인터럽트를 사용 불가능 하도록 설정 한다.

 

AIC Interrupt Clear Command Register

- 인터럽트의 에지를 삭제 한다.

 

AIC Interrupt Set Command Register

- 인터럽트의 에지를 설정한다.

 

AIC End of Interrupt Command Register

- 인터럽트 처리를 종료할 때 쓰는 레지스터

 

AIC Spurious Interrupt Vector Register

- 잘봇된 인터럽트 발생시 처리를 위한 벡터 어드레스 설정

 

 

 

AIC Debug Control Register

  • GMSK : 1: nIRQ,nFIQ를 동작 금지
  • PROT : 1: 보호 모드 사용

 

AIC Fast Forcing Enable Register

- FIQ 인터럽트로 사용하도록 설정

 

AIC Fast Forcing Disable Register

- FIQ 인터럽트롤 사용하지 못하도록 설정

 

 

 

 

AIC Fast Forcing Status Register

- FIQ 인터럽트로 사용가능한지 상태를 확인

 

'공부 > SAM7S' 카테고리의 다른 글

[SAM7S] AT91SAM7S 자료 11  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 10  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 9  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 8  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 7  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 6  (0) 2012.11.14
posted by 큰파도

댓글을 달아 주세요