i.mx35 armv6 코어 프로세서로 작업하고 있습니다. 인터럽트 62가 설치되어 있고 호출되는 핸들러가있는 FIQ로 구성되어 있습니다. 현재 나의 핸들러는 출력 핀을 토글하기 만하면 스코프로 레이턴시를 테스트 할 수있다. 아래 코드를 사용하면 FIQ가 트리거되면 가능한 한 빨리 영원히 계속되며 분명히 인정되지 않습니다. Interrupt Force Register를 통해 FIQ를 트리거하고 있으므로 소스가 빠르게 트리거하지는 않습니다. FIIC 루틴의 AVIC에서 인터럽트 62를 비활성화하면 인터럽트는 한 번만 트리거됩니다.ARMv6 FIQ, 인터럽트 수신
나는 ARM1136JF-S 및 ARM1136J-S 기술 참조 설명서에서 VIC 포트에 대한 절을 읽었으며 적절한 종료 절차를 설명합니다. 하나의 FIQ 핸들러 만 가지고 있으므로 분기 할 필요가 없습니다. 이해가 안 라인은 다음과 같습니다
STR R0, [R8,#AckFinished]
내가 AckFinished이 수 또는 어떤이 명령을 수행 할 예정이다 할을 예정이다 모르겠어요. ,
ldr r9, IOMUX_ADDR12
ldr r8, [r9]
orr r8, #0x08 @ top LED
str r8,[r9] @turn on LED
bic r8, #0x08 @ top LED
str r8,[r9] @turn off LED
subs pc, r14, #4
IOMUX_ADDR12: .word 0xFC2A4000 @remapped IOMUX addr
내 핸들러는 내가 처음 이동 한 후 그것을 사용하지 않으면 잘 정상적인 시스템 작동이 재개 반환 그렇지 않으면 지속적으로 트리거와 시스템이 정지 한 것으로 나타납니다 :
내 FIQ 핸들러는 다음과 같습니다.
코어가 AVIC를 인식하지 못하거나이 FIQ 트리거링의 또 다른 원인이있을 수 있다고 생각합니까? 코어가 AVIC를 인정하지 않으면이를 인정하기 위해 무엇을해야합니까?