Wie Vector Interrupt Controller(VIC) wird verwendet, um zu behandeln, die externe interrupts effizient?
Möchte ich wissen, wie VIC kann mit den externen interrupts effizient
- Wer ist VIC? Ein interrupt-controller ist nicht definiert durch die ARM7-Kern, es ist eine herstellerspezifische externe Peripherie-Gerät. Außerdem, was ist Ihre Frage, wie die hardware funktioniert oder wie man mit der hardware? In beiden Fällen ist die Antwort Lesen Sie den Anbieter Datenblatt/Referenz-Handbuch.
- VICs sind Häufig genug auf ARM7-Geräte, ich denke der tag ist nicht out-of-line (ist es eine verfügbare ARM7-Gerät, das nicht über eine VIC?). Und selbst die Tatsache, dass RTFM würde die Antwort auf eine Frage bedeutet nicht unbedingt, eine Frage ist nicht angemessen für SO; ich denke, die überwiegende Mehrheit der Fragen, die hier beantwortet werden können durch Lesen der Dokumentation.
- Burr: Das ist nicht das, was ich sage. Eher, dass die Vektorielle Interrupt-Controller ist ein generischer Begriff, was ein Anbieter implementiert werden, ist nicht notwendigerweise das gleiche wie ein weiterer Anbieter ist die Umsetzung. Andere können implementieren einer interrupt-controller und verwenden Sie einen anderen Begriff ganz. Der Punkt ist, dass der interrupt-controller ist nicht die Definition von ARM.
- ARM definiert einen interrupt-controller-caled PrimeCell VIC, seine Verwendung ist optional, und viele Hersteller nutzen eine alternative Implementierung (ST STR7 EIC zum Beispiel). NXP Teile verwenden, die PrimeCell Umsetzung, können wir vielleicht davon ausgehen, die Frage bezieht, aber dennoch zu wissen, die genaue Teil würde es erlauben, eine bessere gezielte Antwort.
InformationsquelleAutor user559208 | 2011-01-05
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen wenig hintergrund (die Sie mit dem Stichwort "arm7", also vermutlich diese Frage ist nicht über das NVIC der Cortex, etc..)
Zunächst ARM-Prozessoren unterstützt 2 Arten von interrupts: normal-interrupts (IRQ) und Schnelle Interrupts (FIQ). Jedes Peripheriegerät, das könnte interrupt die CPU würde entweder auslösen eines IRQ oder ein FIQ. IRQ hat einen einzigen Vektor, FIQ hat einen einzigen Vektor.
Manchmal die Zuordnung von Peripheriegerät an IRQ/FIQ erfolgt in der hardware, manchmal ist es konfigurierbar. Aber der Punkt ist, dass, sobald Sie haben, >2 Peripherie-interrupts, Sie teilen sich einen interrupt-Vektor. In anderen Worten, wenn Sie 3 interrupt-Quellen, Sie werden garantiert mindestens ein IRQ oder FIQ verwendet werden, die von mehreren Geräten. Dies bedeutet, dass, wenn Sie die unterbrechen, müssen Sie auf "poll" (in der Regel hardware-Register), um herauszufinden, "warum bin ich hier? wer unterbrach mich?"
Die ganze Idee, die VIC ist, dass jeder interrupt hat seinen eigenen Vektor, so dass, wenn Sie Vektor zu, dass die interrupt-slot, wissen Sie genau, wer unterbricht Sie. Kein polling "OK, wer unterbrach mich?"
Gibt es eine Menge weitere Informationen über die ARM-VIC (und Ihren vielen Varianten) at ARM ' s Website, einschließlich Konfiguration, info, registrieren, Definitionen, verschachtelte/priorisierte interrupts, etc. aber Ihre Frage konkret darüber, wie die VIC-interrupts verarbeitet effizient. Beschreiben Sie jedes detail Ihrer Funktionen ist Weg außerhalb des Geltungsbereichs dieser Frage.
(Ich interpretierte "effizient" als "mit möglichst wenig polling/befragen, wie möglich". Beachten Sie, dass die priorisierte interrupts, unterstützt von VIC, reduzieren die Latenzzeit von hoher Priorität unterbricht, und das könnte auch als "effizienter", obwohl ich nicht wirklich steckte es in die gleiche Kategorie wie nicht mit zur Umfrage "wer unterbrach mich?")
Mehr info auf der Primecell VIC gefunden werden kann hier at ARM ' s Website.