컥.. 어제 저녁에 삽질을 좀해서 OS Timer를 Enable 할 수가 있었다.
그런데 이상한것은 이놈이 interrupt가 발생하면 FIQ Handler가 불리는 것이었다.
분명 Interrupt Register의 Level Register는 모두 IRQ Interrupt로 설정된 상태였는데.... ㅡ_ㅡ;;
IRQ Handler를 부르게 할려고 혹시나 값을 바꾸면 될까해서 여러가지로 노력해 봤으나...
나온 결론은 두가지...

OS Timer는 IRQ Interrupt로 설정된게 확실하다.
지금 튄 Interrupt는 분명 IRQ Interrupt다. (비록 FIQ Handler가 불리긴 하지만.. ㅡ_ㅡ;;; )

오늘 혹시나 해서 Vector Table에 대한 문서를 보니... 컥.. 아래와 같았다.

0x00000000 Reset Handler
0x00000004 Undefined Instructions Handler
0x00000008 Software Interrupt Handler (SWI)
0x0000000C Prefetch Abort Handler
0x00000010 Data Abort Handler
0x00000018 IRQ Interrupt Handler
0x0000001C FIQ Interrupt Handler

음.. 머가 이상한지 처음엔 몰랐지만 Address를 보면 0x00000014 부분이 사용되지 않고 있었
던것이다. @0@/~~
이런.. 난 걍 문서에 나온 Vector Handler의 순서만보고 그냥 연번호로 할당했으니

0x00000014 IRQ Interrupt Handler
0x00000018 FIQ Interrupt Handler 가 될 수 밖에~~ @0@/~~

머여... 강조 같은걸 써서라도 좀 눈에 띄게 해놓던가.... ㅡ_ㅡ;;;;
삽질만 했네 그려.. 쿨럭..;;;;

+ Recent posts