나는 VIC 효율적으로VIC (Vector Interrupt Controller)를 사용하여 외부 인터럽트를 효율적으로 처리하는 방법은 무엇입니까?
작은 배경은 (당신이 "ARM7"그래서 아마도이 질문 등, 코어 텍스 NVIC에 대해없는 태그 ..)답변
처음에는 외부 인터럽트를 처리 할 수있는 방법을 알고 싶어요 ARM 프로세서는 두 가지 유형의 인터럽트를 지원합니다 : 일반 인터럽트 (IRQ) 및 고속 인터럽트 (FIQ). CPU를 인터럽트 할 수있는 각 주변 장치는 IRQ 또는 FIQ를 트리거합니다. IRQ에는 단일 벡터가 있고 FIQ에는 단일 벡터가 있습니다.
주변 장치에서 IRQ/FIQ 로의 매핑이 하드웨어에서 수행되는 경우가 있으며 때로는 구성 가능합니다. 그러나 요점은 주변 장치 인터럽트가 2 개를 초과하면 인터럽트 벡터를 공유해야한다는 것입니다. 즉, 3 개의 인터럽트 소스가있는 경우 IRQ 또는 FIQ 중 하나 이상이 여러 장치에서 사용되는 것이 보장됩니다. 이것은 인터럽트를 취할 때 "왜 여기에 있습니까? 누가 나를 방해 했습니까?"를 알아 내기 위해 "폴링"(보통 하드웨어 레지스터)해야한다는 것을 의미합니다.
VIC의 전체 아이디어는 각 인터럽트마다 고유 한 벡터가 있다는 점입니다. 따라서 인터럽트 슬롯으로 벡터 전환하면 누가 당신을 방해하고 있는지 정확히 알 수 있습니다. 폴링 없음 "좋아, 누가 나를 방해 했니?"
ARM의 사이트에는 구성 정보, 레지스터 정의, 중첩/우선 순위 인터럽트 등 ARM VIC (및 그 많은 변형)에 대한 많은 정보가 있지만 VIC에서 인터럽트를 효율적으로 처리하는 방법 . 이 기능의 모든 세부 사항을 설명하는 것은이 질문의 범위를 벗어납니다.
(가능한 한 작은 폴링/질의를 통해 "효율적으로"해석 됨) VIC에서 지원하는 우선 순위가 지정된 인터럽트는 우선 순위가 높은 인터럽트의 대기 시간을 줄이며 " "누가 나를 방해 했습니까?"라는 질문을하지 않아도 같은 범주에 넣지는 않지만 효율적입니다.) Primecell VIC에 대한 자세한 정보는 here at ARM's site에서 찾을 수 있습니다.
- 1. PIC (Programmable Interrupt Controller)와 VIM (Vector Interrupt Controller)의 차이점은 무엇입니까?
- 2. 데이터베이스와 관련하여 태그를보다 효율적으로 처리하는 방법은 무엇입니까?
- 3. 많은 수의 파일 설명자를 가장 효율적으로 처리하는 방법은 무엇입니까?
- 4. Java에서 Ctrl + C처럼 시스템 인터럽트를 처리하는 방법
- 5. UITableViewCell.accessoryView에서 PopOver Controller를 호출하는 방법은 무엇입니까?
- 6. 사용자 정의 View Controller를 만드는 방법은 무엇입니까?
- 7. 문자열의 외부 색인을 효율적으로 저장하십시오.
- 8. 데이터베이스 통신에서 BLOB 및 수치 데이터를 효율적으로 처리하는 방법은 무엇입니까?
- 9. ATA/IDE 인터럽트를 알리는 올바른 방법은 무엇입니까?
- 10. 키보드 인터럽트를 트리거하거나 시뮬레이트하는 방법은 무엇입니까?
- 11. Where와 OrderBy 절을 효율적으로 처리하는 방법
- 12. 프로그래밍 방식으로 @Controller를 호출하십시오.
- 13. 개별 전자 메일에 * 외부 * 그룹 전자 메일을 처리하는 방법은 무엇입니까?
- 14. C++ std :: vector 요소를 사용하여 std :: vector 요소를 재정렬하십시오.
- 15. 인터럽트를 비활성화하는 것은 무엇을 의미합니까?
- 16. Executor 서비스에서 여러 결과를 효율적으로 처리하는 방법
- 17. NSFetchedResultsController를 사용하여 많은 관계를 처리하는 방법은 무엇입니까?
- 18. Mechanize를 사용하여 JavaScript를 처리하는 방법은 무엇입니까?
- 19. ActiveRecord를 사용하여 Wiki의 수정본을 처리하는 방법은 무엇입니까?
- 20. jquery를 사용하여 JSON을 처리하는 방법은 무엇입니까?
- 21. E4X 구문을 사용하여 특성을 처리하는 방법은 무엇입니까?
- 22. CollectionView 기능을 사용하여 CompositeCollection을 처리하는 방법은 무엇입니까?
- 23. Xstream을 사용하여 레거시 클래스를 처리하는 방법은 무엇입니까?
- 24. 효율적으로 300+ 파일을 스칼라에서 동시에 처리하는 방법
- 25. istringstream을 효율적으로 복사하는 방법은 무엇입니까?
- 26. Tab Bar Controller를 사용하여 테이블 표시하기
- 27. FileNotFoundException을 처리하는 방법은 무엇입니까?
- 28. 인터럽트를 사용할 때마다 masm32 프로그램이 왜 충돌합니까?
- 29. 여러 HTMLPurifier 구성을 효율적으로 처리하는 방법
- 30. 앱이 시작될 때로드되는 기본 View Controller를 변경하는 방법은 무엇입니까?
VIC는 누구입니까? ARM7 코어는 인터럽트 컨트롤러를 정의하지 않고 공급 업체별 외부 주변 장치입니다. 또한, 귀하의 질문에 대해, 어떻게 하드웨어가 작동하는지 또는 하드웨어 작업 방법은 무엇입니까? 두 경우 모두 해당 업체의 데이터 시트/참조 설명서를 읽으십시오. – Clifford
@Clifford : VIC는 ARM7 장치에서 흔히 사용되는 것으로, 태그가 라인 외부에 있지 않은 것으로 보입니다 (VIC가없는 ARM7 장치가 있습니까?). 그리고 RTFM이 질문에 대답한다는 사실 자체가 반드시 그 문제가 SO에 적절하지 않다는 것을 의미하지는 않습니다. 나는 여기서 질문의 대다수가 문서를 읽음으로써 대답 될 수 있다고 생각한다. –
@Micheal Burr : 그건 내가 말하는 것이 아니다. 오히려 * Vectored Interrupt Controller *는 일반적인 용어로, 한 벤더가 구현하는 것이 반드시 다른 벤더의 구현과 동일하지는 않습니다. 다른 것들은 인터럽트 컨트롤러를 구현하고 또 다른 용어를 완전히 사용할 수 있습니다. 요점은 인터럽트 컨트롤러가 ARM에 의해 정의되지 않는다는 것입니다. – Clifford